创建Lua高级表

Luc*_*cas 2 lua insert multidimensional-array lua-table

需要创建一些表,以便我可以通过这种方式从中获取信息:

table[attacker][id]
Run Code Online (Sandbox Code Playgroud)

如果我会使用

print(table[attacker][id])
Run Code Online (Sandbox Code Playgroud)

它应该打印该.

尝试了很多方法,但没有找到任何好处......

我猜应该是这样的......

table.insert(table, attacker, [id] = value)
Run Code Online (Sandbox Code Playgroud)

^这不起作用.

有人能帮我吗?


编辑

好吧,当我这样尝试时:

x = {}
function xxx()
    if not x[attacker][cid] then
        x[attacker][cid] = value
    else
        x[attacker][cid] = x[attacker][cid] + value
    end
    print(x[attacker][cid])
end
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:

尝试索引字段'?' (零值)

Amb*_*ber 5

您需要花括号来创建内部表:

table.insert(my_table, attacker, {[id]=value})
Run Code Online (Sandbox Code Playgroud)

要么

-- the advantage of this is that it works even if 'attacker' isn't a number
my_table[attacker] = {[id]=value}
Run Code Online (Sandbox Code Playgroud)
a = 1
b = 2
c = 3
d = {}
table.insert(d, a, {[b]=c})
print(d[a][b]) -- prints '3'
Run Code Online (Sandbox Code Playgroud)