我用repl.it看看它返回了什么,只是为了好奇,原来not nil
回归true
为什么?是因为在Lua中一切都应该是真的还是假的?
Repl.it链接:https://repl.it/repls/SanePastelHarrier
因为nil
在转换为布尔值时是false
:
2.2布尔
布尔类型有两个值,
false
和true
,它们代表传统的布尔值。然而,布尔人并不垄断条件值:在Lua中,任何值都可能代表一个条件。条件(例如控制结构中的条件)将false
和nil
视为false
和其他任何东西,如true
。请注意,与其他一些脚本语言不同,Lua在条件测试中将零和空字符串视为true
。
并且not
将其参数视为布尔值:
3.3逻辑运算符
逻辑运算符是
and
,or
和not
。与控制结构一样,所有逻辑运算符都将false
和nil
视为false
,而将其他任何东西视为true
。