lua中使用循环更改表格值

我试图更改表格内部的值,但是我无法做到。

这是我的代码:

table = {{x=2}, {y=3}, {z=2}}

function printTabValue(tab, index)
    for k, v in pairs(tab[index]) do
        print(k, v)
    end
end

for k, v in pairs(table[1]) do
    print(k,v)
    table[k] = 5
end

printTabValue(table,1)

我得到了这个结果:

执行任务:lua54 c:\Users\Fabio\Documents\tabletop\randomSpawnWithChat.lua <

x 2

x 2

终端将被任务重新使用,按任意键关闭它。

所以,这个值是相同的。

如何编辑表格内的值?

原文链接 https://stackoverflow.com/questions/70415217

点赞
stackoverflow用户2858170
stackoverflow用户2858170
table = {{x=2}, {y=3}, {z=2}}

等同于

table = {
  [1] = {x=2},
  [2] = {y=3},
  [3] = {z=2},
}

table[1]只有一个字段"x",因此在运行循环后

for k, v in pairs(table[1]) do
    print(k,v)
    table[k] = 5
end

可以被替换为

table["x"] = 5table.x = 5

您的表看起来像这样:

table = {
  [1] = {x=2},
  [2] = {y=3},
  [3] = {z=2},
  x = 5,
}

要更改单个值,您只需要这样做:

table[1].x = 5
2021-12-20 09:38:03