Menu
CoddyTech

Значения Truthy и Falsy

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

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

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

print(false and "This won't print")  -- false — ложное значение
print(nil and "This won't print")    -- 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