使用 `if x then foo() end` 如何用于 Lua 中检测 x 是否为 nil

我不确定在 Lua 中使用 if x then foo() end 来检测 x 是否为非空是否可行。

在手头的项目中有这样的检测很多,所以我需要一个建议,是应该将它们全部更改还是让它们保持原样。

谢谢。

点赞
用户734069
用户734069

在任何条件语句中,表达式只有在两种情况下被认为是假的:该表达式是布尔值 false 或者是 nil

因此,当 x 不为 nil 且不为 false 时,if x then foo() end 将调用 foo。如果你只想限制为 nil(通常不需要这么做),那么使用 x ~= nil

2017-01-06 02:38:45