存储二维数组中第二个表格在索引中可能存在的问题

过去,当顺序不重要时,我发现自己在将表格作为索引和表格的值时使用表格。由于每个表格都返回唯一值,因此它们可以安全地用作索引,并且我已经得到了以后要在程序中使用的所有信息。现在我没有看到任何类似的lua代码,也没有在非测试程序中使用它。因此,我担心使用这种方法时可能会遇到一些未预料到的问题。

例如:

a = {1, 2, 3, 4, 5} --一些测试值
b = {2nil, 4nil1}
c = {3nilnilnil2}
d = {4nil1nil3}
e = {51234}

tab = {a,b,c,d,e }
t = {}

for i,v in pairs(tab)do
      t [v] = 0
end

for iv in pairs(t)do --几乎每次输出都是以不同的顺序
      print(iv [1],iv [2],iv [3],iv [4],iv [5])--可能是一个需要浏览所有数据的数据列表
end

io.read()

现在我可以在t [v]中存储一些附加信息,但如果没有任何信息,是否有一种更小的lua类型?

编辑:

这是否与弱表的使用相吻合?

注:

标准的二位表:table [key1] = table

table [key1] [key2] <-- 包含内容

这个版本:table [table] = anything but nil < - 不可通过table [key1] [key2]进行访问**

key1 [key2] <-- 包含内容

点赞
用户107090
用户107090

使用一个表作为另一个表的键是可以的。

但是需要注意的是,即使表内容相同,不同的表也会被视为不同的键。

2014-10-31 09:58:51