Язык:
Русский
English
Перечисляемые типы
Перечисляемые типы определяют упорядоченные наборы значений, перечисляя идентификаторы, которые обозначают эти значения. Их порядок следует из последовательности, в которой они были перечислены.
Синтаксис
type имя = (идентификатор, идентификатор, ..., идентификатор);
Замечания
Идентификаторы в определении типа становятся константами перечисляемого типа.
Первая константа имеет порядковый номер 0, вторая - 1, и так далее.
Перечисляемые типы являются подклассом порядковых типов.
Пример
type Suit = (Clubs, Diamonds, Hearts, Spades);
При таком объявлении Hearts является константой типа Suit.
Стандартная функция Ord возвращает порядковый номер перечисляемой константы. В этом примере,
Ord(Clubs) = 0
Ord(Diamonds) = 1
Ord(Hearts) = 2
И так далее.
Ада
type Day is (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
type Suit is (Clubs, Diamonds, Hearts, Spades);
type Color is (White, Red, Yellow, Green, Blue, Brown, Black);
type Light is (Red, Amber, Green); -- Red и Green перегружены
В отличие от Borland Pascal, идентификаторы в определении типа становятся функциями, а не константами. Это позволяет перегружать их. А в остальном, поведение этих функций полностью аналогично константам.
Нумерация начинается с нуля. Преобразование номера в значение и обратно осуществляется атрибутами 'Val и 'Pos.