Julia中对象的地址
如何将对象Julia中对象的地址,julia,Julia,如何将对象obj的地址作为普通字符串获取?来自_objref()函数的指针\u接近我想要的,但是当我打印结果时,我得到的是“Ptr{Void}@0x00007f3864c40038”而不是“0x00007f3864c40038”。当然,我可以简单地丢弃前11个字符,但我觉得应该有一个更优雅的解决方案 这个问题的动机是,我正在开发一个基于邻接列表的图形库,以类型为中心 immutable Vertex neighbors::Vector{Vertex} end 目前,递归打印单个顶点会打
obj
的地址作为普通字符串获取?来自_objref()函数的指针\u接近我想要的,但是当我打印结果时,我得到的是“Ptr{Void}@0x00007f3864c40038”
而不是“0x00007f3864c40038”
。当然,我可以简单地丢弃前11个字符,但我觉得应该有一个更优雅的解决方案
这个问题的动机是,我正在开发一个基于邻接列表的图形库,以类型为中心
immutable Vertex
neighbors::Vector{Vertex}
end
目前,递归打印单个顶点会打印整个图形,这非常不方便。相反,我希望print(v)
生成顶点0x00007f3864c40038
使用repr
+UInt64
是一种方法:
julia> a=10
10
julia> s=repr(UInt64(pointer_from_objref(a)))
"0x0000000080012230"
julia> print(s)
0x0000000080012230
使用Julia版本0.4.3进行测试
更新:在Julia version>=1.0中,可能不会对不可变对象调用,因此对于上面的示例,需要将a
变量设置为可变类型(例如,数组
类型):
OT,但我想你知道和。
julia> a = [1, 2, 3]
3-element Array{Int64,1}:
1
2
3
julia> s=repr(UInt64(pointer_from_objref(a)))
"0x000000001214ce80"