Константа
Оператор константа позволяет создавать свойства без параметров, которые всегда возвращают одно и то же значение. Этим значением могут быть статические объекты пользовательских и встроенных классов, а также специальное значение NULL. Класс значения определяется самим значением:
| Значение константы | Класс значения |
|---|---|
| Статический объект пользовательского класса | класс, в объявлении которого этот объект перечислен |
| Встроенное значение | встроенный класс этого значения |
NULL | отсутствует — класс задаётся окружающим контекстом там, где он требуется |
Константы FALSE не существует — ложное значение представляется как NULL.
Язык
Константы записываются как ссылки на статические объекты для значений пользовательских классов и как литералы для значений встроенных классов и NULL.
Примеры
CLASS Direction {
north, east, south, west // объявляем статические объекты
}
// здесь константное свойство создается из объекта Direction.north, которое затем используется
// оператором сравнения для построения свойства isNorth
isNorth (Direction d) = d == Direction.north;
// здесь константное свойство создается из литерала, описывающего дату
defaultDate() = 1982_07_13;
CLASS Man;
age 'Возраст' = DATA INTEGER (Man);
// здесь константное свойство создается из целого числа (целочисленного литерала)
isChild (Man m) = age(m) < 17;