Al imprimir ciertos tipos de lua (tales como las funciones y tablas), se obtiene el nombre del tipo y una dirección, como a continuación:obtener la dirección de un objeto lua
> tab = {}
> print(tab)
table: 0xaddress
He creado una clase simple como a continuación, y me gustaría sobrescribir el método __tostring
de manera similar. ¿Cómo obtengo la dirección del objeto que quiero imprimir?
Aquí está mi clase. Me gustaría print(pair)
para imprimir Pair: 0xaddress
. Obviamente, esto es un ejemplo trivial, pero el concepto es útil:
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
+1 porque esto funciona, pero estaría bien si Lua tuviera una función 'rawtostring' para hacer innecesario este tipo de hack. – finnw
Esto no es seguro para subprocesos, ¿o sí? – Llamageddon