首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua Nested Bug?

Lua Nested Bug?
EN

Stack Overflow用户
提问于 2011-02-25 10:27:30
回答 1查看 367关注 0票数 3

问题:

我试图将一个数组解包成一个数组,但只有当它是最后一个解包的元素时才起作用,如果它后面有任何东西,那么只有第一个元素被解包。下面是我想要做的一个非常基本的例子。有没有更好的方法来做到这一点,或者这是一个我必须处理的bug?我不想使用table.insert,因为这似乎更具可读性,在表的定义中添加类似于unpack的内容。

代码:

代码语言:javascript
复制
   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

输出:

代码语言:javascript
复制
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

注意:

我运行的是5.1版。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-25 11:09:05

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

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5112954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档