尝试添加表格,使用元表,我收到此错误,我在这里真的很复杂,没有办法解决(我正在学习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
答案 0 :(得分:1)
代码中存在两个问题:
元方法的名称为__add
,其中两个下划线,而不是三个。
您需要在元方法中返回s
。
修复这些后,代码按预期工作。