58
В некоторых языках программирования допускается задание так
называемых
перечислений. Бывает удобно называть объекты в программе
привычными именами, а не раз и навсегда заданными наименованиями
типов. Перечисления отвечают указанной потребности, например:
Type DAY=(Monday,Tuesday, Wednesday,Thursday, Friday, Saturday,
Sunday); (*
Паскаль*)
type Cardsuit is (clubs, diamonds, hearts, spades); --
Ада
enum MyColors {Red = 100, Green = 110, Blue = 120} // C#
В них явным образом указывается набор значений, допустимых для данной
переменной, — фактически, создается новый тип данных. После его
введения допускается объявление переменной данного типа наряду с
базовыми, например:
MyColors cwet=Green; // С#
Обычно при компиляции значения перечислений представляются целыми
числами. В зависимости от языка программирования представление может
быть либо полностью скрыто от программиста, либо доступно ему,
например, путем принудительного преобразования значения типа
«перечисление» к значению типа «целое число», либо даже управляемо
явно, как показано в примере.
При попытке присвоить переменной перечислимого типа значение, не
указанное при его определении, будет выдаваться ошибка. Это позволяет
еще более повысить надежность программ по сравнению с простой
статической типизацией. Перечислимый тип используется довольно
широко и воспринимается как сама собой разумеющаяся особенность
современных языков программирования. Тем не менее не обходится без
критики со стороны теоретиков и практиков программирования. При
разработке языка программирования Оберон перечислимые типы попали в
список особенностей, которые были удалены из него. Никлаус Вирт,
разработчик языка, назвал следующие причины: «Во все возрастающем
числе программ непродуманное использование перечислений… приводит
к демографическому взрыву среди типов, что, в свою очередь, ведет не к
ясности программ, а к многословию».
Достарыңызбен бөлісу: