如果使用“if x then foo() end”来检测 x 在 Lua 中为 nil,会发生什么



我不确定是否可以使用 if x then foo() end 来检测 Lua 中的 x 不是 nil。

手头的项目中有很多这样的检测,所以我需要一个建议,如果我把它们全部改变还是放手。

谢谢。

对于任何条件语句,表达式在两个条件下都被认为是假的:表达式是布尔值false或表达式是nil

因此,如果x既不nil也不falseif x then foo() end会打电话给foo.如果要将其限制为仅nil(通常不会),请使用 x ~= nil

最新更新