我曾经使用repl.it查看其返回结果,仅出于好奇心理,结果显示not nil
返回了true
。
这是为什么呢?是否因为在Lua中,最终所有东西都应该是true或false?
repl.it链接:https://repl.it/repls/SanePastelHarrier
我曾经使用repl.it查看其返回结果,仅出于好奇心理,结果显示not nil
返回了true
。
这是为什么呢?是否因为在Lua中,最终所有东西都应该是true或false?
repl.it链接:https://repl.it/repls/SanePastelHarrier
由于将nil
转换为布尔值时,nil
被视为false
:
2.2 布尔类型
布尔类型有两个值:
false
和true
,它们代表传统的布尔值。然而,在 Lua 中,任何值都可能表示一个条件。条件语句(例如控制结构)会将false
和nil
视为false
,其余所有值均视为true
。请注意,与其他一些脚本语言不同,Lua 在条件测试中将零和空字符串均视为true
。
而not
运算符将其参数视为布尔值:
3.3 逻辑运算符
逻辑运算符包括
and
、or
和not
。与控制结构一样,所有逻辑运算符将false
和nil
视为false
,其余所有值均视为true
。
not nil
的结果是什么? - Egor Skriptunoff