Перейти к основному содержимому
Версия: 7.0

Инструкция =

Инструкция = - создание нового свойства.

Синтаксис

name [caption] [(param1, ..., paramN)] = expression [options];
name [caption] [(param1, ..., paramN)] = contextIndependentOperator [options];

name [caption] [(param1, ..., paramN)] = NATIVE returnClass (argClass1, ..., argClassM) [options];

Описание

Инструкция = объявляет новое свойство и добавляет его в текущий модуль.

При создании свойства инструкция имеет две основные формы:

  • Первая форма описывает и создает свойство с помощью выражения. Класс возвращаемого значения и классы аргументов определяются по выражению.
  • Вторая форма описывает свойство с помощью одного из контекстно-независимых операторов-свойств, которые не могут быть частью выражения. Такой оператор сам несет в себе классы аргументов и возвращаемого значения.

Третья форма с ключевым словом NATIVE зарезервирована за системными модулями и не предназначена для прикладного кода. Она объявляет отдельные системные свойства, которые создаются до инициализации модулей, фиксируя сигнатуру свойства без задания тела.

Также при объявлении свойства может задаваться набор его опций.

Параметры

  • name

    Имя свойства. Простой идентификатор.

  • caption

    Заголовок свойства. Строковый литерал. Если заголовок не задан, то заголовком свойства будет являться его имя.

  • param1, ..., paramN

    Список параметров. Каждый из них задается типизированным параметром. Список может быть пустым. Эти параметры далее могут быть использованы в выражении описывающем создаваемое свойство (а также в некоторых опциях).

    Если параметры не заданы явно, то они будут автоматически вычислены при обработке выражения. Порядок параметров будет соответствовать порядку появления параметров в выражении. Рекомендуется явно задавать параметры свойства. Это позволит найти опечатки и другие ошибки в объявлении (например, несоответствие количества указанных параметров с количеством параметров созданного свойства).

  • expression

    Выражение, описывающее и создающее свойство.

  • contextIndependentOperator

    Контекстно-независимый оператор-свойство, описывающий и создающий свойство. Поскольку такой оператор сам задает классы своих аргументов, заданные в этой инструкции параметры (если они есть) лишь дают этим аргументам имена.

  • options

    Опции свойства.

  • returnClass

    Идентификатор класса возвращаемого значения свойства.

  • argClass1, ..., argClassM

    Список идентификаторов классов аргументов свойства. Список может быть пустым.

Примеры

// cвойство задано контекстно-независимым оператором-свойством DATA
cost 'Стоимость' (i) = DATA NUMERIC[12,3] (Item);

// cвойство задано выражением
weightedSum 'Взвешенная сумма' (a, b) = 2*a + 3*b;

// заголовком этого свойства будет 'diff', а параметрами - (a, b)
diff = a - b;

// свойство задано оператором DATA с указанием дополнительных опций свойства
teamName 'Название команды' = DATA BPSTRING[30](Team) IN baseGroup TABLE team;