替换lua中的键的表值

时间:2012-10-11 07:30:51

标签: replace lua indexing lua-table

我需要替换lua中的键值,例如考虑表

t = {"book", "ball", "bank"}

这里我需要更改“box”而不是“ball”的值。怎么做 ?

之前我尝试过找一个关键值并进行更改,但它没有用!!!

for key, value in pairs(t) do
  if key == 2 then
    value = "box"
  end
end

但它没有用..如果有人知道替代方式,请给我建议吗?

1 个答案:

答案 0 :(得分:5)

这是合乎逻辑的。

在循环中,循环变量keyvalue是本地变量。因此重新分配它们,它只是更改局部变量引用的值。循环运行1次后,本地用完了范围并被丢弃。

将表引用中的值更改为表本身,如

 t[key]="box"

在这个简单的例子中,只做t[2]="box"显然也会服务;)(而不是只需要遍历整个表来替换一个值) 可以在manual中找到更深入的信息。