如何获取对象的地址obj
作为一个普通的字符串?这pointer_from_objref()
函数接近我想要的,但是当我打印结果时我得到"Ptr{Void} @0x00007f3864c40038"
代替"0x00007f3864c40038"
。当然,我可以简单地丢弃前 11 个字符,但我觉得应该有一个更优雅的解决方案。
这个问题的动机是我正在开发一个基于邻接列表的图形库,以类型为中心
immutable Vertex
neighbors::Vector{Vertex}
end
目前,打印单个顶点会递归打印整个图,这非常不方便。相反,我想print(v)
以导致Vertex 0x00007f3864c40038
.
Using repr
+ UInt64
不在:
julia> a=10
10
julia> s=repr(UInt64(pointer_from_objref(a)))
"0x0000000080012230"
julia> print(s)
0x0000000080012230
tested with Julia Version 0.4.3
Update:在 Julia 版本 >= 1.0 中,pointer_from_objref https://docs.julialang.org/en/v1/base/c/#Base.pointer_from_objref可能无法在不可变对象上调用,因此对于上面的示例,a
变量需要设置为可变类型(例如,Array
type):
julia> a = [1, 2, 3]
3-element Array{Int64,1}:
1
2
3
julia> s=repr(UInt64(pointer_from_objref(a)))
"0x000000001214ce80"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)