为什么"不为零"在Lua中归零?

Sha*_*haH 3 lua boolean-logic

我曾经使用repl.it来查看它返回的内容,仅仅是为了好奇,结果发现了 not nil 返回true

为什么?是因为在Lua中一切都应该是真的还是假的?

Repl.it链接:https://repl.it/repls/SanePastelHarrier

Sta*_*irl 6

因为nilfalse当转换成布尔:

2.2布尔

布尔型有两个值,false并且true,其表示了传统的布尔值.然而,布尔人并不垄断条件值:在Lua中,任何值都可能代表一个条件.条件(例如控制结构中的条件)考虑两者false以及nilas false和其他任何东西true.请注意,与其他一些脚本语言不同,Lua true在条件测试中同时考虑零和空字符串.

not把它作为一个布尔参数:

3.3逻辑运算符

逻辑运算符是and,ornot.与控制结构一样,所有逻辑运算符都同时考虑 as falsenilas false,以及其他任何东西true.