在lua中使用循环更改表值
Posted
技术标签:
【中文标题】在lua中使用循环更改表值【英文标题】:Change a table value with a loop in lua 【发布时间】:2022-01-21 16:20:15 【问题描述】:我正在尝试更改表格中的值,但我不能。
这是我的代码:
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)
我得到这个结果:
执行任务:lua54 c:\Users\Fabio\Documents\tabletop\randomSpawnWithChat.lua
x 2
x 2
终端将被任务重用,按任意键关闭它。
所以,值是一样的。
如何编辑表格内的值?
【问题讨论】:
用table[1][k] = 5
替换table[k] = 5
用另一个未使用的关键字替换所有出现的table
。因为table
已经存在并拥有函数/方法。也称为库:lua.org/manual/5.4/manual.html#6.6
【参考方案1】:
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"] = 5
或 table.x = 5
您的表格如下所示:
table =
[1] = x=2,
[2] = y=3,
[3] = z=2,
x = 5,
要更改单个值,您需要做的就是:
table[1].x = 5
【讨论】:
以上是关于在lua中使用循环更改表值的主要内容,如果未能解决你的问题,请参考以下文章