Menu
Coddy logo textTech

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

Часть раздела Fundamentals путешествия по 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

Шпаргалка

Lua использует сокращенное вычисление для операторов and и or, прекращая вычисление, как только становится известен окончательный результат.

Для оператора and: если первое условие равно false, второе условие никогда не вычисляется:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Проверяет только playerAlive (false), пропускает hasWeapon

Для оператора or: если первое условие равно true, второе условие никогда не вычисляется:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Проверяет только hasKey (true), пропускает hasPassword

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

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

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

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

Все уроки раздела Fundamentals