【问题标题】:How do I get the sum of 2 tables in LUA?如何获得 LUA 中 2 个表的总和?
【发布时间】:2021-04-25 02:14:35
【问题描述】:
x = {1, 2, 3}
y = {4, 5, 6}
z = x + y

我有两个表 x 和 y,只想创建第三个表,它只是其中元素的总和。我努力使用上面的 LUA 代码,但这会给出错误输入:3:尝试对表值(全局“x”)执行算术...

比如,我想要结果z = {5, 7, 9}

请提出有用的功能,或者请帮助我在 LUA 中形成这样的功能。 谢谢

【问题讨论】:

标签: lua sum


【解决方案1】:

是的,通过table.concat()进行迭代和检查
做...

x = {1, 2, 3}
y = {4, 5, 6}
z = {}

-- First check same table length and if so then add sums to z table
if #x==#y then
for i=1,#x do
 z[i]=x[i]+y[i]
end
end

print(table.concat(z,' '))
-- puts out: 5 7 9

...结束

【讨论】:

    【解决方案2】:

    除非实现__add 元方法,否则无法在 Lua 中添加表。

    对于两个序列的元素之和,只需这样做:

    function sumElements(t1,t2)
      local result = {}
      for i = 1, math.min(#t1, #t2) do
        result[i] = t1[i] + t2[i]
      end
      return result
    end
    

    当然,您应该验证您的输入并考虑如何处理不匹配的表格大小。假设 t1 有 3 个元素,t2 有 5 个元素,你是只有 3 个结果值还是将剩余的 2 个加 0?

    【讨论】:

      猜你喜欢
      • 2013-03-06
      • 2019-06-07
      • 2016-12-16
      • 1970-01-01
      • 2023-03-13
      • 2021-12-19
      • 2014-01-23
      • 2018-05-09
      • 2011-07-07
      相关资源
      最近更新 更多