请问 Lua 中以下代码的输出结果怎么理解?

function ReturnTwoVal()
return "1","2"
end
function ReturnThreeVals()
return "x","y","Z"
end
TblA = {ReturnThreeVals(),ReturnTwoVal() }
print(TblA[2],TblA[1], TblA[2], TblA[3], TblA[4])

输出结果为:1 x 1 2 nil

点赞
用户107090
用户107090

表达式返回多个值时会被调整为单值,除非它们是函数调用或表构造中的最后一个表达式。

因此,

TblA = {ReturnThreeVals(),ReturnTwoVal() }

相当于

TblA = {"x", "1","2"}
2018-02-19 13:36:01