JSR-305 обеспечивает некоторую поддержку диапазонов, но я не знаю, когда это будет частью Java.

аскаль,  и многие другие языки поддерживают диапазоны, способ подтипа целых чисел. Диапазон - это целочисленное значение со знаком, которое варьируется от значения (первое) до другого (последнее). Легко реализовать класс, который делает то же самое в ООП, но я думаю, что встроенная поддержка этой функции может позволить компилятору выполнять дополнительные статические проверки.Я знаю, что статически невозможно проверить, что переменная, определенная в диапазоне, не будет «переполнена» во время выполнения, т. Е. Из-за неправильного ввода, но я думаю, что что-то можно сделать. Я думаю о

Дизайн по контракту подход (Eiffel) и Spec # (C # Контракты ), что дает более общее решение.Есть ли более простое решение, которое проверяет, по крайней мере, статическое внешнее присваивание во время компиляции в C ++, C # и Java? Наподобие

статические утверждаютредактировать?

Я понимаю, что «диапазоны» могут быть использованы для разных целей:итераторы

нумераторыцелочисленный подтипЯ бы сосредоточился на последнем, потому что формирователи легко сопоставимы на языке C *. Я имею в виду закрытый набор значений, что-то вроде громкости музыки, то есть диапазон, который варьируется от 1 до 100. Я хотел бы увеличить или уменьшить его на значение. Я хотел бы иметь ошибку компиляции в случае статического переполнения, что-то вроде:

Благодарю.

volume=rangeInt(0,100);
volume=101;  // compile error!
volume=getIntFromInput(); // possible runtime exception

<nitpick> Правильное имя для поддиапазонных типов </ nitpick>

Ответы на вопрос(0)

Ваш ответ на вопрос