我偶然发现了lua的奇怪行为。代码示例:
function foo()
local t = {'a', 'b', 'c'}
return unpack(t)
end
function bar()
local t = {'x', 'y'}
return unpack(t)
end
b = { foo(), bar() }
for k,v in pairs(b) do
print(k,v)
end
此代码的结果是:
1 a
2 x
3 y
因此,结果 fromfoo()
除了第一个元素之外都被丢弃。问题是,为什么有些元素被丢弃了?我已经简要检查了 lua 5.2 手册,但我没有看到对这种行为的解释。