Joe*_*ang 6 parameters lua function
对于下面的 Lua 代码:
local function foo(x, y, z)
local x = x or true
local y = y or 1234
z = z or "default"
end
Run Code Online (Sandbox Code Playgroud)
一直以为函数里面这三行的意思是:
如果 x/y/z 为零,则 x/y/z 设置为 true/1234/“默认”。否则,它保持原样。因此,我在很多地方都有这样的一行来将参数设置为某个默认值,以防它可能作为 nil 传递给函数。
但是,在我的实验中似乎并不完全正确。我不确定我从哪里学到了这个 Lua 编码概念。如何正确地做到这一点?
只要您的 boolean(?) 变量x未初始化为false. 如果您只想对nil值使用默认值,则该a or b方法是正确的。
如果您的变量可以是false,则必须使用严格的 if-then 块:
if x == nil then x = true end
Run Code Online (Sandbox Code Playgroud)
您可以在lua wiki上看到更多关于三元运算符的方法/示例。