table.unpack() only returns the first element [duplicate]

[亡魂溺海] 提交于 2019-12-01 15:58:57

table.unpack returns multiple values. The defined behavior in that case is that if it is not the last one in a list of expressions then all but the first returned value will be discarded.

From the book:

Lua always adjusts the number of results from a function to the circumstances of the call. When we call a function as a statement, Lua discards all of its results. When we use a call as an expression, Lua keeps only the first result. We get all results only when the call is the last (or the only) expression in a list of expressions.

As a workaround you can append the rest of the arguments to the table and make the table the last argument that way.

chicks

table.unpack() is returning the same thing in either case, but in the second case Lua is only expecting one value so it isn't going to turn it into multiple arguments. When it is the last argument Lua is ok with it turning into multiple arguments.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!