Menu
Coddy logo textTech

Сокращенные вычисления

Часть раздела Основы путешествия по Lua на Coddy — урок 23 из 90.

Операторы and и or используют умную оптимизацию, называемую сокращённым вычислением (short-circuit evaluation). Это означает, что Lua прекращает вычисление, как только становится известен окончательный результат, потенциально полностью пропуская части выражения.

Для оператора and, если первое условие — false, Lua сразу понимает, что всё выражение будет false, не проверяя второе условие:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Lua проверяет только playerAlive (false), и никогда не вычисляет hasWeapon

Аналогично, для оператора or, если первое условие — true, Lua знает, что результатом будет true, и пропускает второе условие:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Lua проверяет только hasKey (true) и никогда не вычисляет hasPassword

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы