end
Когда необходим множественный разбор случаев, более удобна инструкция множественного выбора inspect, обсуждаемая ниже.
ОО-метод, благодаря полиморфизму и динамическому связыванию, уменьшает необходимость явных условных инструкций и множественного выбора, поддерживая неявную форму выбора. Когда объект применяет некоторый компонент, имеющий несколько вариантов, то во время выполнения нужный вариант выбирается автоматически в соответствии с типом объекта. Этот неявный стиль выбора обычно предпочтительнее, но, конечно, инструкции явного выбора остаются необходимыми.
Множественный выбор
Инструкция множественного выбора (также известная, как инструкция
[x]. Разбор случаев настолько распространен, что заслуживает особого синтаксиса, увеличивающего ясность, позволяя избежать бесполезного повторения '
[x]. Компиляторы могут использовать особенно эффективную технику реализации, - таблицу переходов (jump table), - неприменимую к общим условным инструкциям и избегающую явных проверок.
Что касается типа анализируемых величин (тип
inspect
e
when v1 then
instruction; instruction; ...
when v2 then
instruction; instruction; ...
...
else
instruction; instruction; ...
end
Все значения
Инструкция действует так: если значение
Если отсутствует else, и значение
Одно из частых приложений инструкции множественного выбора - анализ символа, введенного пользователем13.4):
inspect
first_input_letter
when 'D' then
'Удалить строку'
when 'I' then
'Вставить строку'
...
else
message ('Неопознанная команда; введите H для получения справки')
end
Когда значения
Как и условные инструкции, инструкции множественного выбора не должны использоваться для замены неявного выбора, основанного на динамическом связывании.
Циклы
Синтаксис циклов описан при обсуждении Проектирования по Контракту (лекция 11):
from
initialization_instructions
invariant
invariant
