我需要替换 lua 中键的值,例如考虑一个表
t = {"book", "ball", "bank"}
在这里,我需要更改“box”而不是“ball”的值。怎么做 ?
以前我尝试找到一个键的值并进行更改,但它没有用!!!
for key, value in pairs(t) do
if key == 2 then
value = "box"
end
end
但它没有用..如果有人知道替代方法,请给我建议?
这是合乎逻辑的。
在循环中,循环变量key
和value
是本地变量。所以重新分配它们,它只是改变了局部变量引用的值。循环运行 1 次后,局部变量超出范围并被丢弃。
将表引用中的值更改为表本身,例如
t[key]="box"
在这个简单的例子中,t[2]="box"
显然也可以服务;)(而不是为了替换一个值而必须遍历整个表) 可以在手册中找到更深入的信息。