G
nil
и false
Size: a a a
G
nil
и false
G
IS
IS
IS
G
not (not 0) == true
IS
IS
IS
i % 2 ~= 0
IS
IS
DEBUG and print("Debug: ...")
?IS
IS
IS
0 and print("true") or print("false")
lua: ./just_some_lua.lua:70: unexpected symbol near '0'
S
0 == true
{} == true
-100500 == true
false == false
if nil then это не выполнится end
S
foo = true and 10 or 20 -- foo = 10
bar = false and 10 or 20 -- bar = 20
Print же ничего не возвращает, то есть выражение вродеsomething = 0 and print("true") or print("false")
выведет и то и другое:print("true")
, которое вернёт nil
являющийся ложью. or print("false")
— оно выполняется, something теперь равен nil
и оба текста вывелись. Для логических функций ты делаешь обёртки возвращающие true или что тебе нужно.S
S
function tprint(...)
print(...)
return true
endили
something = 0 and tprint("true") or tprint("false")
if (0 and tprint("true") or tprint("false")) thenВот этот код будет выполнен именно так как тебе хочется, функция возвращает true и не ломает логические выражения ))
...
end
IS