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