在 lua 中使用循环更改 table 值

Change a table value with a loop in lua

我正在尝试更改 table 中的值,但我不能。

这是我的代码:

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)

我得到这个结果:

Executing task: lua54 c:\Users\Fabio\Documents\tabletop\randomSpawnWithChat.lua <

x 2

x 2

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

所以,值是一样的。

如何编辑 table 中的值?

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 看起来像这样:

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

要更改单个值,您需要做的就是:

table[1].x = 5