Функция 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.