尝试对全局< t1'进行算术运算(表值)

时间:2017-12-08 14:00:44

标签: lua

尝试添加表格,使用元表,我收到此错误,我在这里真的很复杂,没有办法解决(我正在学习Lua) )

mt = { ___add = function (a,b)
                local s = {}
                for k,v in ipairs( a ) do s[#s + 1] = v end
                for k,v in ipairs( b ) do s[#s + 1] = v end
               end
    }

t1 = {1,2,3}
t2 = {4,5}
setmetatable( t1, mt )
print(table.concat(t1+t2, ", "))

它在尝试"编译"时给了我这个结果。与翻译

main.lua:15: attempt to perform arithmetic on global 't1' (a table value)
main.lua:15: in main chunk

1 个答案:

答案 0 :(得分:1)

代码中存在两个问题:

  • 元方法的名称为__add,其中两个下划线,而不是三个

  • 您需要在元方法中返回s

修复这些后,代码按预期工作。