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语法实现的。