открыть: Синтаксис 2Syntax 1

Конструкция switch

Пока не реализовано в интерпретаторе.

Когда нужно выполнить определённые команды в зависимости от значения выражения – воспользуйтесь конструкцией `switch. Эта конструкция проверяет значение выражения, стояещего слева и выполняет команды, назначенные найденной позиции.

x = 2 x `switch ~ 1 ~ z = 0 ; 2 ~ z = 1 ; 3 ~ z = 1_ ; -- Минус один ; z `echo; -- Выдаст: 1

Также можно указать позицию по-умолчанию. Она выполняется, если ни одно значение выражения не подходит. Для этого служит ключевое слово `default.

x = 5 x `switch ~ 1 ~ z = 0 ; 2 ~ z = 1 ; 3 ~ z = 1_ ; `default ~ z = # ; ; z #dump #0 -- Выдаст: #

Для одной позиции можно задать ряд значений, перечисленных через необязательную запятую.

100 => x `switch ~ 1, 2, 3 ~ z = 'Значение подходит.' y = 0 ; 4 ~ z = 'Значение немного больше необходимого.' ; 5 6 ~ z = 'Значение больше необходимого.' ; `default ~ z = 'Значение слишком большое!' y = 1 ; ; z `echo;

Конструкция `switch может быть использована как часть другого выражения. Конструкция принимает значение последнего выражения найденной позиции. А если ни одна позиция не найдена и позиция `default не указана, то конструкция `switch принимает значение null #.

x = 'yes' z = (x `switch ~ 'no' ~ #0 ; 'yes' ~ #1 ; ;) z #dump #0 -- Выдаст: #1

Ещё пример:

'none' => x `switch ~ 'no' ~ #0 ; 'yes' ~ #1 ; `default ~ x = 'no' # -- Последнее выражение позиции по-умолчанию ; ; => z #dump #0 -- Выдаст: #