Khi bạn in một số loại trong lua (ví dụ như chức năng và bảng), bạn sẽ có được tên của các loại và một địa chỉ, như sau:có được địa chỉ của một đối tượng lua
> tab = {}
> print(tab)
table: 0xaddress
tôi đã tạo ra một lớp đơn giản như dưới đây, và tôi muốn ghi đè lên phương thức __tostring
tương tự. Làm cách nào để lấy địa chỉ của đối tượng mà tôi muốn in?
Đây là lớp học của tôi. Tôi muốn print(pair)
để in ra Pair: 0xaddress
. Rõ ràng đây là một ví dụ nhỏ, nhưng khái niệm này rất hữu ích:
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 vì tính năng này hoạt động, nhưng sẽ rất tuyệt nếu Lua có chức năng 'rawtostring' để loại hack này không cần thiết. – finnw
Đây không phải là chủ đề an toàn, phải không? – Llamageddon