Книга: Описание языка PascalABC.NET
Перечислимый и диапазонный типы
Перечислимый и диапазонный типы
Перечислимый тип определяется упорядоченным набором идентификаторов.
type typeName = (value1, value2, ..., valuen);
Значения перечислимого типа занимают 4 байта. Каждое значение value представляет собой константу типа typeName, попадающую в текущее пространство имен.
Например:
type
Season = (Winter,Spring,Summer,Autumn);
DayOfWeek = (Mon,Tue,Wed,Thi,Thr,Sat,Sun);
К константе перечислимого типа можно обращаться непосредственно по имени, а можно использовать запись typeName.value, в которой имя константы уточняется именем перечислимого типа, к которому она принадлежит:
var a: DayOfWeek;
a := Mon;
a := DayOfWeek.Wed;
Значения перечислимого типа можно сравнивать на <:
DayOfWeek.Wed < DayOfWeek.Sat
Для значений перечислимого типа можно использовать функции Ord, Pred и Succ, а также процедуры Inc и Dec. Функция Ord возвращает порядковый номер значения в списке констант соответствующего перечислимого типа, нумерация при этом начинается с нуля.
Для перечислимого типа определена экземплярная функция ToString, возвращающая строковое представление переменной перечислимого типа. При выводе значения перечислимого типа с помощью процедуры write также выводится строковое представление значения перечислимого типа.
Например:
type Season = (Winter,Spring,Summer,Autumn);
var s: Season;
begin
s := Summer;
writeln(s.ToString); // Summer
writeln(s); // Summer
end.
Диапазонный тип представляет собой подмножество значений целого, символьного или перечислимого типа и описывается в виде a..b, где a - нижняя, b - верхняя граница интервального типа, a<b:
var
intI: 0..10;
intC: 'a'..'z';
intE: Mon..Thr;
Тип, на основе которого строится диапазонный тип, называется базовым для этого диапазонного типа. Значения диапазонного типа занимают в памяти столько же, сколько и значения соответствующего базового типа.
- Обзор типов
- Список типов .NET
- Размерные и ссылочные типы
- Целые типы
- Вещественные типы
- Логический тип
- Символьный тип
- Перечислимый и диапазонный типы
- Строковый тип
- Массивы
- Статические массивы
- Динамические массивы
- Указатели
- Последовательности
- Записи
- Множества
- Процедурный тип
- Файловые типы
- Эквивалентность и совместимость типов
- Отображение на типы .NET
- Типы данных
- Типы данных для работы с датой и временем
- Большие целые типы
- Типы страниц и их использование
- 1.2.3. Константы, переменные и типы
- 4. Лекция: Типы данных
- 9.1. Классы и прототипы
- 4. Кортежи. Типы кортежей
- 5. Отношения. Типы отношений
- 1. Базовые типы данных
- 1. Различные типы и кратности связей
- 1.7 Иерархия драйверов систем хранения и типы драйверов