无法对表值执行算术运算

时间:2014-10-22 18:27:09

标签: lua lua-table

为什么我不能对这些表值进行算术运算? index的键重定向到数值:

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

1 个答案:

答案 0 :(得分:2)

您可能正在运行表中的元素数量;请注意,要使用qq+3键,您需要在表格中包含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)