Шаг 29.
Пользовательские типы. Перечисляемые типы

    На этом шаге мы рассмотрим особенности использования перечисляемых типов.

    Перечисления позволяют программисту описывать новые типы данных, значения которых определяет сам программист.

    Описание перечисляемого типа состоит из списка его элементов, заключенного в круглые скобки. Каждый из элементов представляет собой уникальный идентификатор:

type
    Season = (Spring, Summer, Autumn, Winter);
    WeekDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);

    В рамках блока, где объявлен перечисляемый тип, идентификаторы всех элементов перечисляемого типа интерпретируются как константы. Spring, Summer, Autumn и Winter представляют собой константы типа Season, a Mon, Tue, Wed, Thu, Fri, Sat и Sun - константы типа WeekDay. Здесь необходимо обратить внимание на то, что эти идентификаторы не являются строковыми константами и в кавычки не заключаются. Поскольку идентификаторы перечисляемого типа являются костантами для всего блока, где они объявлены, то описание одного и того же идентификатора в разных типах считается ошибкой. Так, при трансляции проекта, содержащего показанный ниже фрагмент, будет выдано сообщение об ошибке: Identifier redeclared: 'Mon':

type
    WeekDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); 
    WorkDay = (Mon, Tue, Wed, Thu, Fri);
Константы предопределенных типов не могут быть значениями перечисляемого типа. Например, следующие описания некорректны:
type
    Digitals   =   (0,1,2,3,4,5,6,7,8,9); //Константы числового  типа. 
    //Константы символьного типа.
    DigSymbols = ('0', '1', '2' , '3', '4', '5', '6', '7', '8' ,'9');
    //Константы строкового типа.
    WeekDay    = ('Mon','Tue','Wed','Thu','Fri','Sat','Sun'); 

    Так как перечисляемые типы являются порядковыми, то, соответственно, они перечислением своих элементов определяют упорядоченные наборы констант. Упорядочение констант в типе выполняется в соответствии с последовательностью, в которой перечисляются идентификаторы. Порядковый номер константы перечисляемого типа определяется ее позицией в списке идентификаторов при объявлении. Первая константа в списке имеет порядковый номер 0, вторая - номер 1, и т.д..

    Так же, как и к переменным других порядковых типов, к переменным перечисляемого типа применимы встроенные функции Ord, Pred и Succ.

    На следующем шаге мы рассмотрим интервальные типы.




Предыдущий шаг Содержание Следующий шаг