Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 这在卢阿意味着什么&引用;var=var或";_Lua - Fatal编程技术网

Lua 这在卢阿意味着什么&引用;var=var或";

Lua 这在卢阿意味着什么&引用;var=var或";,lua,Lua,你能告诉我这是什么意思吗?我知道基本的变量声明和赋值,但这很混乱。这两者有什么区别 var = var or { "one", "two", "three", } 及 我很快查看了手册,找不到解释。或不返回布尔值;相反,它返回第一个真值或最后一个假值(如果它们都不为真) 例如: print(nil or 123) -- 123 print(123 or nil) -- 123 print(456 or 123) -- 456 print(

你能告诉我这是什么意思吗?我知道基本的变量声明和赋值,但这很混乱。这两者有什么区别

var = var or {
        "one",
        "two",
        "three",
    }


我很快查看了手册,找不到解释。

不返回布尔值;相反,它返回第一个真值或最后一个假值(如果它们都不为真)

例如:

print(nil or 123) -- 123
print(123 or nil) -- 123
print(456 or 123) -- 456
print(nil or false or "hi") -- hi
您找到的行是此属性的惯用用法,用于将变量设置为默认值(如果它是
nil
false
),但如果是其他变量,则保留其值。范例

function foo(arg)
    arg = arg or "hello world!"
    print(arg)
end

foo() -- "hello world!"
foo("goodbye world!") -- "goodbye world!"
的工作原理也类似;它返回第一个假值或最后一个真值。通过将两者结合使用,还可以模拟三元运算符:

function foo(bool)
    print(bool and "yes" or "no") -- second value (the true value) must be truthy
end
print(foo(true)) -- "yes"
print(foo(false)) -- "no"
print(foo(123)) -- "yes"

非常感谢。现在我明白了。
function foo(bool)
    print(bool and "yes" or "no") -- second value (the true value) must be truthy
end
print(foo(true)) -- "yes"
print(foo(false)) -- "no"
print(foo(123)) -- "yes"