Lua Nested Unpack Bug?

Kyl*_*ker 3 lua

题:

我正在尝试将一个数组解压缩到一个数组中,但它只有在解压缩的最后一项时才有效,如果有任何东西,只有第一个元素被解压缩.以下是我正在尝试做的一个非常基本的例子.有没有更好的方法来做到这一点,或者这是一个我必须应对的错误?我不想使用table.insert,因为这似乎更具可读性,在表的定义中添加类似unpack的东西.

码:

   print ("Error 1")
   local table1 = { {1,1}, {2,2}, {3,3} }
   local table2 = { {0,0}, unpack (table1), {4,4} }
   for n,item in ipairs (table2) do print (unpack(item)) end

   print ("Good")
   table1 = { {1,1}, {2,2}, {3,3} }
   table2 = { {0,0}, unpack (table1) }
   for n,item in ipairs (table2) do print (unpack(item)) end

   print ("Error 2")
   table1 = { {1,1}, {2,2}, {3,3} }
   table2 = { {0,0}, unpack (table1), unpack (table1) }
   for n,item in ipairs (table2) do print (unpack(item)) end
Run Code Online (Sandbox Code Playgroud)

输出:

Error 1
0       0
1       1 -- {2,2} & {3,3} cut off.
4       4
Good
0       0
1       1 -- All elements unpacked.
2       2
3       3
Error 2
0       0
1       1 -- {2,2} & {3,3} cut off.
1       1 -- All elements unpacked.
2       2
3       3
Run Code Online (Sandbox Code Playgroud)

注意:

我正在运行5.1版.

lhf*_*lhf 11

不是一个错误.如果调用不是最后一个,则返回多个值的函数调用将调整为第一个值.该手册说明了http://www.lua.org/manual/5.1/manual.html#2.5