lua で特定のタイプ (関数やテーブルなど) を出力すると、次のようにタイプの名前とアドレスが取得されます。
> tab = {}
> print(tab)
table: 0xaddress
__tostring
以下のように簡単なクラスを作成しましたが、同様にメソッドをオーバーライドしたいと思います。印刷したいオブジェクトのアドレスを取得するにはどうすればよいですか?
これが私のクラスです。print(pair)
印刷したいのですがPair: 0xaddress
。明らかにこれは些細な例ですが、概念は役に立ちます:
Pair = {}
Pair.__index = Pair
function Pair.create()
local p = {}
setmetatable(p, Pair)
p.x = 0
p.y = 0
return p
end
function Pair:getx()
return self.x
end
function Pair:gety()
return self.y
end
function Pair:sety(iny)
self.y=iny
end
function Pair:setx(inx)
self.x=inx
end