2014-10-31 25 views
0

在过去,我发现自己使用表作为索引,并且在订单不相关时使用表 的值。 由于每个表格都会返回一个唯一值,因此它们将被保存为 索引,并且由于我已经在程序中稍后使用了所有我想要的信息,因此我会在 之后使用。现在我没有看到任何类似的lua代码 jet,并没有在非测试程序中使用它。所以我很担心我使用这种方法时可能会遇到一些无法预料的/意想不到的问题。将二维数组的第二个表存储在索引中的潜在问题

例如:

a = {1,2,3,4,5}       --some testing values 
b = {2,nil,4,nil,1} 
c = {3,nil,nil,nil,2} 
d = {4,nil,1,nil,3} 
e = {5,1,2,3,4} 

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

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

for iv in pairs(t) do     --is almost every time outputting it in a different order 
    print(iv[1],iv[2],iv[3],iv[4],iv[5])  --could be a list of data where you have to go through all of it anyway 
end 

io.read() 

现在我可以储存在T一些额外的信息[V],但如果我没有 做任何有可能有些LUA型是小?

编辑:

这是否适合使用弱表?

注:

标准的二维表:表[键1] =表

表[键1] [键2] < - 包含的东西

这个版本:表[表] =不能通过表格[key1] [key2]

key1 [key2] < - contains s凝灰岩

+0

我不明白你最后一句话。 – lhf 2014-10-31 09:59:34

+0

@lhf t [v]我正在初始化为0只是因为零将意味着表不存在。因此,使用尽可能小的内存量的值会节省相当多的内存,如果这样做会变得很大。 – CHlM3RA 2014-10-31 11:42:49

+1

0尽可能少; “假”也是如此。 – lhf 2014-10-31 11:47:30

回答

1

在另一个表格中使用表格作为关键字很好。

但是,请注意,不同的表将是不同的键,即使表中有相同的内容。

+0

在正常情况下是的,但是周表可能会感到困惑,我必须在接下来的日子里看看他们。 我觉得有一些关键和索引。 – CHlM3RA 2014-10-31 10:18:26