Lua学习求助:遍历Table更新值时出现Nil错误如何解决
解决Lua遍历Table时更新值出现Nil错误的问题
嘿,我一眼就揪出问题所在啦!咱们一步步捋清楚:
错误根源
在你用ipairs遍历的过程中,current是players数组里直接取出的子Table元素(就是那个包含name和count的小对象),而不是数组的索引值。你写players[current]的时候,Lua会把这个子Table当作键去查找,自然找不到对应的条目,所以就返回nil了。
修正后的代码
local players = { {name = "something", count = 1} } -- 注意这里name的值要加引号哦 for _, current in ipairs(players) do if current.name == inflictor.name then -- 直接通过current访问count属性就行,因为current是原数组元素的引用 current.count = current.count + 1 break end end
额外小提醒
- 代码里的
something要记得加双引号("something"),不然Lua会把它当成未定义的变量,也会触发报错。 - 确认
inflictor.name是字符串类型,并且和current.name的类型完全一致,避免因为类型不匹配导致判断逻辑失效。
内容的提问来源于stack exchange,提问作者Zio_Pagnotta
相关产品推荐
相关产品推荐

