2

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

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

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

以前我尝试找到一个键的值并进行更改,但它没有用!!!

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

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

4

1 回答 1

10

这是合乎逻辑的。

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

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

 t[key]="box"

在这个简单的例子中,t[2]="box"显然也可以服务;)(而不是为了替换一个值而必须遍历整个表) 可以在手册中找到更深入的信息。

于 2012-10-11T07:40:30.973 回答