Функция BCase |
Функция BCase представляет собой оптимизированную запись цепочки из вложенных функций if. При работе последовательно вычисляются метки; если одна из них вернула true, вычисляется соответствующие выражение, дальнейшее выполнение прекращается. Если все метки вернули false вычисляется выражение else. Возвращаемые значения всех выражений, в том числе выражения else приводятся к общему типу. Если это невозможно выдается сообщение об ошибке.
BCase "(" <метка> ":" <выражение> {"," <метка> ":" <выражение> } [";"<выражение_else> ] ")"
<метка> - вычисляемое выражение, должно возвращать значение типа boolean.
<выражение> - вычисляемое выражение.
<выражение_else> - вычисляемое выражение. Если выражение else не задано, то по умолчанию генерируется выражение, возвращающее нулевое значение, тип которого совпадает с типом возвращаемого значения остальных операторов. Например для строки - пустая строка, для числа - 0 и т.д.
Результат вычисления выражения, для которого метка вернула true. Если все метки вернули false вычисляется выражение else.
interface boolExprCase; function a(i : word) : string; { a := BCase(i = 1 : 'I = 1', i = 2 : 'I = 2', i = 3 : 'I = 3'; 'strELSE'); } handleEvent cmInit : { Message ('Передаю 1'); Message (a(1)); Message ('Передаю 2'); Message (a(2)); Message ('Передаю 3'); Message (a(3)); Message ('Передаю 4'); Message (a(4)); } end; end.
Атлантис 5.0.03.