Lua   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了打印 – 获取lua对象的地址大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当您在lua中打印某些类型(例如函数和表)时,您将获得类型的名称和地址,如下所示:
> tab = {}
> print(tab)
table: 0xaddress

我已经创建了一个简单的类,如下所示,我想类似地覆盖__toString方法.如何获取要打印的对象的地址?

这是我的课.我想打印(对)打印出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

解决方法

这是一个很好的方法:
Pair.__toStringx = function (p)
    Pair.__toString = nil    
    local s = "Pair " .. toString(p)                                                                                                                                                                                                    
    Pair.__toString = Pair.__toStringx
    return s
end
Pair.__toString = Pair.__toStringx    

> print(p)
Pair table: 0x7fe469c1f900

你可以在Pair .__ toStringx中做更多的字符串操作来获得你想要的格式,例如删除“table”.

大佬总结

以上是大佬教程为你收集整理的打印 – 获取lua对象的地址全部内容,希望文章能够帮你解决打印 – 获取lua对象的地址所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。