Menu
CoddyTech

Значения Truthy и Falsy

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

При использовании логических операторов, таких как and, or и not, Lua должна определить, что считается «истиной» или «ложью» в логических контекстах. Это понятие называется истинными и ложными значениями, и Lua обрабатывает его иначе, чем многие другие языки программирования.

В Lua только два значения считаются ложными (обрабатываются как false в логических операциях):

print(false and "skipped")  -- выводит false: false считается ложным значением
print(nil and "skipped")    -- выводит nil: nil считается ложным значением

Обратите внимание: and и or возвращают один из своих операндов, а не только true или false: a and b возвращает a, если a ложно, в противном случае — b; a or b возвращает a, если a истинно, в противном случае — b. Поэтому две строки выше выводят false и nil, а каждая строка ниже выводит свой текст.

Всё остальное в Lua считается истинным (в логических операциях рассматривается как true). Сюда входят значения, которые могут вас удивить, если вы привыкли к другим языкам:

print(0 and "This will print")      -- 0 считается истинным в Lua!
print("" and "This will print")     -- Пустая строка считается истинной!
print({} and "This will print")     -- Пустая таблица считается истинной!

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

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

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

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор Lua