Lua - 解包并打包数组

如果我解包并打包数组:

arr = {1, 2, 3, 4, 5}
arr = table.pack(table.unpack(arr))

我能保证最终的 arr 和初始的 arr 是相同的吗?

文档中,它说:

注意,结果表可能不是一个序列。

这意味着什么?

点赞
用户107090
用户107090

你引用的文档是在讨论table.pack(1,nil,3)中的nil。

你的表是一个序列,因此table.unpack(arr)不输出nil,而table.pack(table.unpack(arr))是一个序列。

然而,table.pack(table.unpack(arr))与原始的arr不同,因为它包含一个n 值为5的字段。这是唯一的区别。

2017-07-21 13:36:00