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
したがって、からの結果foo()
は、最初の要素を除いてすべて破棄されます。問題は、なぜいくつかの要素が破棄されるのかということです。lua 5.2のマニュアルを簡単に確認しましたが、この動作の説明が表示されません。