我曾经使用repl.it来查看它返回的内容,仅仅是为了好奇,结果发现了
not nil
返回true
为什么?是因为在Lua中一切都应该是真的还是假的?
Repl.it链接:https://repl.it/repls/SanePastelHarrier
因为nil是false当转换成布尔:
2.2布尔
布尔型有两个值,
false并且true,其表示了传统的布尔值.然而,布尔人并不垄断条件值:在Lua中,任何值都可能代表一个条件.条件(例如控制结构中的条件)考虑两者false以及nilasfalse和其他任何东西true.请注意,与其他一些脚本语言不同,Luatrue在条件测试中同时考虑零和空字符串.
并not把它作为一个布尔参数:
3.3逻辑运算符
逻辑运算符是
and,or和not.与控制结构一样,所有逻辑运算符都同时考虑 asfalse和nilasfalse,以及其他任何东西true.