Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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 关系表达式,具有来自具有多个结果的函数的表项,而无额外变量?_Lua_Lua Table - Fatal编程技术网

Lua 关系表达式,具有来自具有多个结果的函数的表项,而无额外变量?

Lua 关系表达式,具有来自具有多个结果的函数的表项,而无额外变量?,lua,lua-table,Lua,Lua Table,我想将函数返回的表项与固定字符串进行比较。如果我首先将结果存储在一个变量中作为一个列表,它就会起作用。 为什么它不能作为一行表达式。有更好的方法吗 -- similar to function provided by an API local testFunction = function() return true, {name = "hans"} end --works local a = {testFunction()} if a[2].name=="

我想将函数返回的表项与固定字符串进行比较。如果我首先将结果存储在一个变量中作为一个列表,它就会起作用。 为什么它不能作为一行表达式。有更好的方法吗

-- similar to function provided by an API
local testFunction = function()
    return true, {name = "hans"}
end

--works
local a = {testFunction()}
if a[2].name=="hans" then
    --do something
end

--doesn't work
if {testFunction}[2].name=="hans") then
    --do something
end

添加括号可以解决这个问题

if ({testFunction()})[2].name=="hans" then
    --do something
end

感谢Egor Skriptunoff的评论

if({testFunction()})[2]。name==“hans”然后
非常感谢,这很有效。这种行为的原因是什么?(因此,当遇到由此引起的不同问题时,我不必再次询问)
{……}[2]
不是用Lua语法实现的。