Логические операции


-- Истина/Ложь:

true
false

-- Логическое НЕ:

not

-- Логическое И:

and

-- Логическое ИЛИ:

or



-- Логические операции в Lua перегружены
-- and - возвращает первый false или nil, иначе второй
-- or - возвращает первый не false и не nil, иначе второй

10 or 20            --> 10
10 and 20           --> 20
10 or error()       --> 10

false and error()   --> false
false and nil       --> false
false or nil        --> nil

nil or "a"          --> "a"
nil and 10          --> nil