Интервальный тип есть далеко не во всех языках программирования. Например, в “великом и могучем” С++ его нет (ну может сейчас появился, не знаю точно). И лично меня это сильно бесило, поскольку начинал я с Паскаля, где этот тип есть. И наличие этого типа - это прям существенное преимущество (с моей точки зрения, во всяком случае).
Разумеется, есть этот тип и в наследниках Паскаля: Delphi, Lazarus и др.
Интервальный тип задаётся границами своих значений внутри базового типа. Например, внутри типа Byte (диапазон 0…255) вы можете определить свой тип в диапазоне 1..31 и дать ему какое-то имя, а затем использовать этот тип в программе.
Также этот тип можно использовать при определении массивов, в конструкциях case и т.п. В этом случае задавать типу какое-то имя необязательно.
Объявить тип можно так:
type TDaysOfMonth = 1..31;
var DayMonth : TDaysOfMonth = 1;
И совсем необязательно создавать новый именованный тип с помощью type. Можно просто объявить переменную:
var x : 100..200;
Пример:
Особенно удобно использовать интервальный тип в конструкции case (сишники - завидуйте, никаких вам break и прочих ненужных вещей))))
Кроме того, переменную интервального типа вы можете объявить, используя свой тип. Ранее я рассказывал о перечислениях, вот пример, как можно объявить переменную интервального типа на основе вашего перечисления:
type
//Создаём тип - дни недели
WeekDays = (Mo, Tu, We, Th, Fr, Sa, Su);
//Интервальный тип - рабочие дни
WorkingDays = Mo.. Fr;
//Объявляем переменную
var wd : WorkingDays;
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.