Lua: null 和 nil 有什么区别?

9

我正在开发一个用于 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) - Etan Reisner
@EtanReisner 起初它打印了“null”,但修改后打印了“foo”。因此,它似乎是一个普通变量。 - Genhis
在普通的Lua中是这样的。我不知道Oxide嵌入它时做了什么,或者是否有一些库将null用作某个特殊的标记。 - Etan Reisner
1个回答

21

nil是Lua语言中的一个值。

null是一个变量名。它包含什么值?您可以轻松地检查。我们无法确定,如果它是nil,那么使用null是没有意义的,可能是因为某人在C#和Lua代码之间切换时犯了一个错误,这个错误是因为未定义的变量将被评估为nil


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接