Lua Can';t对表值执行算术运算

Lua Can';t对表值执行算术运算,lua,lua-table,Lua,Lua Table,为什么我不能对这些表值执行算术运算?索引的键正在重定向到数值: for q = 1, 42 do horizontalwin = index [q] + index [q + 1] + index [q + 2] + index [q + 3] print (horizontalwin) end 您可能正在运行表中元素的数量;请注意,要通过q+3键使用q,表中需要有45个元素,而不是42个。如果表中只有42个元素,当q为40时,q+3将尝试检索index[43]值,即nil,这

为什么我不能对这些表值执行算术运算?
索引
的键正在重定向到数值:

for q = 1, 42 do
    horizontalwin = index [q] + index [q + 1] + index [q + 2] + index [q + 3]
    print (horizontalwin)
end

您可能正在运行表中元素的数量;请注意,要通过
q+3
键使用
q
,表中需要有45个元素,而不是42个。如果表中只有42个元素,当
q
为40时,
q+3
将尝试检索
index[43]
值,即
nil
,这将触发您看到的错误

您需要将循环从1更改为42-3,或者将总和更改为类似以下内容:

horizontalwin =
  index [q] + (index [q + 1] or 0) + (index [q + 2] or 0) + (index [q + 3] or 0)

定义“不能”。打印该行之前每个字段的值。你犯了什么错误?“尝试对字段“?”(一个nil值)执行算术”?当我打印表的所有键和值时,一切似乎都正常。我得到的错误正是你所说的错误。在某些情况下,如果发生了错误,它一定会不好。你需要找到那个案子。但是@PaulKulchenko几乎肯定是正确的。