私はLuaが初めてなので、チュートリアルで何かを見逃しているかもしれませんが、問題は次のとおりです。
元のテーブルと、それに適用するいくつかの演算子を含むメタテーブルがあります。
original = { 1, 2, 3 }
test = setmetatable(original, {
__add = function (lhs, rhs)
print('adds')
end,
__mul = function (lhs, rhs)
print('multiplies')
end
})
残念ながら、次のような操作を行っているとき:
test = test + 3
test = test * 3
エラーが表示されます:
attempt to perform arithmetic on global 'test' (a table value)
この問題に関する説明は見つかりませんでした。また、メタテーブルが別の変数であり、メソッドに渡された場合、それが機能することに気付きsetmetatable
ました..