【问题标题】:Lua: What's the difference between null and nil?Lua:null 和 nil 有什么区别?
【发布时间】:2015-07-09 16:37:48
【问题描述】:

我正在为Oxide 2 开发一个插件。我一直在向其他插件学习,我注意到其中一些使用null 而不是nil。例如:

if args[1] == null then

Oxide 2 是用 C# 编写的,所以我假设 null 是在 C# 或 Lua 接口中定义的。

它们之间有什么区别吗?


更新: 我在某处读到它可以用于检查,如果 MySQL 列是NULL。这是真的吗?

【问题讨论】:

  • 您的意思是var = nilvar = null?除非有任何特殊的嵌入细节null 只是一个变量(它可能没有值,所以将是nil)但可以正常分配给其他方式。例如,在普通的 lua 解释器中尝试print(null); null = "foo"; print(null)
  • @EtanReisner 起初它打印的是null,但修改后它打印的是foo。所以它似乎是一个正常的变量。
  • 在普通 lua 中是这样。我无法谈论 Oxide 在嵌入它时做了什么,或者某些库是否使用 null 作为一些特殊的哨兵。

标签: lua null luainterface


【解决方案1】:

nil 是 Lua 语言中的值。

null 是一个变量名。它包含什么价值?您可以轻松检查。我们不可以。如果结果是nil,那么使用null 是没有意义的,可能是某人在C# 和Lua 代码之间进行上下文切换所犯的错误,因为未定义的变量将评估为nil

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多