You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

额外小提醒

  1. 代码里的something要记得加双引号("something"),不然Lua会把它当成未定义的变量,也会触发报错。
  2. 确认inflictor.name是字符串类型,并且和current.name的类型完全一致,避免因为类型不匹配导致判断逻辑失效。

内容的提问来源于stack exchange,提问作者Zio_Pagnotta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:32:28