【发布时间】:2020-06-28 20:42:33
【问题描述】:
我在 lua 中有一个由字符串索引项填充的表。不幸的是,众所周知,lua 无法以完美(无头痛)的方式处理此问题,因为 # 运算符和 table.unpack() 将不起作用
t = {}
t['b'] = 2
t['a'] = 1
print("l:", #t)
print("t:", table.unpack(t))
返回:
l: 0
t:
有计算项目的解决方案(即:counting string-indexed tables in lua),但我找不到 table.unpack() 的替代品,有人可以帮忙吗?
所需的输出是:2 1(与我添加它们的顺序相同)
【问题讨论】:
-
您的
unpack将如何工作?如何为要解包的值定义顺序?它只是值还是将它们解压缩为类似{{key="a", value =1}, {key="b", value =2}}结构的数组。这些问题就是为什么您不会看到 1 尺寸适合所有解决方案的原因,因为您希望 unpack 的行为方式可能特定于您的结构 -
顺序现在不重要,我可以先排序后排序。理想情况下,我希望按照它们添加到表中的相同顺序打开它们,但这不是强制性的
-
不清楚您期望
print("t:", table.unpack(t))必须给出什么?print("t:", table.unpack({'a','b','c'}))给t: a b c -
我编辑了我的问题
-
@aster94:您已经说过想要的输出是什么,但没有为什么说这是想要的输出。也就是说,您是否希望输出是因为您按该顺序“插入”了密钥?因为该信息不存在。
标签: lua