为什么“不为零”在Lua中归零?

时间:2017-12-24 18:16:20

标签: lua boolean-logic

我使用repl.it查看它返回的内容,仅仅是为了好奇,结果证明 not nil 返回true

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

Repl.it link:https://repl.it/repls/SanePastelHarrier

1 个答案:

答案 0 :(得分:6)

因为转换为布尔值时nilfalse

  

2.2布尔

     

布尔类型有两个值falsetrue,它们代表传统的布尔值。但是,布尔没有   持有条件值的垄断:在Lua中,任何值都可以代表a   条件。条件(例如控制结构中的条件)   将falsenil都视为false,将其他任何内容视为true。   请注意,与其他一些脚本语言不同,Lua认为它们都是零   条件测试中的空字符串为true

not将其参数视为布尔值:

  

3.3逻辑运算符

     

逻辑运算符为andornot。与控制结构一样,所有逻辑运算符都同时考虑falsenil   作为false,以及其他任何内容true