【问题标题】:Why does "not nil" return true in Lua?为什么“非零”在 Lua 中返回 true?
【发布时间】:2017-12-24 18:16:20
【问题描述】:

我使用 repl.it 来查看它返回的内容,只是出于好奇,结果发现 not nil 返回true

为什么会这样?是不是因为在 Lua 中一切最终都应该是对的还是错的?

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

【问题讨论】:

  • 你期望表达式not nil等于什么结果?

标签: lua boolean-logic


【解决方案1】:

因为nil 转换为布尔值时是false

2.2 布尔值

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

not 将其参数视为布尔值:

3.3 逻辑运算符

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-22
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多