TI-Nspire & Lua / スクリプティングのヒント / メタテーブルを使う 1 / 演算子をオーバーロードする

table1 = {name = "Tom Brady", rating = 110}
table2 = {name = "Matt Ryan", rating = 100}

function myAdd(a, b) -- これをメタメソッドとして使う。
   return a.rating + b.rating
end

setmetatable(table1, {__add = myAdd}) -- setmetatable(テーブル, {__イベント = 函数, __イベント = 函数, ...})。table1 の加算に上の myAdd を使うように変更する。

-------------------------------------
-------------------------------------
-------------------------------------
print(table1 + table2) -- + 演算子でテーブル同士の加算ができるようになった。

f:id:ti-nspire:20170206071446p:plain

参考: