ゆの in Lua
なんかまだないっぽい
X = setmetatable({ x = "" }, {
__div = function (o1, o2)
if o2 then
X.x = X.x .. "スケッチ"
else
X.x = X.x .. "ひだまり"
end
return o1
end,
__lt = function (o1, o2)
print(X.x)
return X
end,
__call = function (self, arg)
X.x = X.x .. "×365 " .. arg
return X
end,
})
return
X / _ / X < X"来週も見てくださいね!"
- 普通に演算子オーバーロード
- return つけないと式とみなされなくて syntax error
- print は改行が入ってしまうので最後に一度だけ
- 連結演算子が .. であることをすっかり忘れていてハマった
- 比較演算子はオペランドが両方とも同じ型でないとエラーになってしまうため、ラップしてる
- X"foo" は X("foo") と同じ、でもって、関数呼びだしはメタテーブルの __call になる。
- 宣言していない、一度も代入していない変数が普通に nil として使えてしまうので _ に定義はいらない