【发布时间】:2017-12-24 18:16:20
【问题描述】:
我使用 repl.it 来查看它返回的内容,只是出于好奇,结果发现
not nil
返回true
为什么会这样?是不是因为在 Lua 中一切最终都应该是对的还是错的?
Repl.it 链接:https://repl.it/repls/SanePastelHarrier
【问题讨论】:
-
你期望表达式
not nil等于什么结果?
标签: lua boolean-logic
我使用 repl.it 来查看它返回的内容,只是出于好奇,结果发现
not nil
返回true
为什么会这样?是不是因为在 Lua 中一切最终都应该是对的还是错的?
Repl.it 链接:https://repl.it/repls/SanePastelHarrier
【问题讨论】:
not nil等于什么结果?
标签: lua boolean-logic
因为nil 转换为布尔值时是false:
2.2 布尔值
boolean 类型有两个值,
false和true,代表传统的布尔值。但是,布尔值不 垄断条件值:在 Lua 中,任何值都可以代表一个 健康)状况。条件(例如控制结构中的条件) 将false和nil视为false,将其他任何内容视为true。 请注意,与其他一些脚本语言不同,Lua 认为两者都为零 在条件测试中空字符串为true。
而not 将其参数视为布尔值:
3.3 逻辑运算符
逻辑运算符为
and、or和not。与控制结构一样,所有逻辑运算符都考虑false和nilfalse,以及其他任何true。
【讨论】: