如何获得atom / ref / future数字部分的引用

时间:2012-09-14 02:48:56

标签: clojure

在clojure repl中,为任何IDeref对象弹出一个唯一的数字

user=> (def a (atom 1))
#'user/a
user=> a
#<Atom@2e1c6600: 1>

这个号码在哪里 - 2e1c6600 - 已存储,我们如何从a获取此号码?

2 个答案:

答案 0 :(得分:4)

它是底层Java对象的hashCode的十六进制表示。如果您绝对需要,可以使用(Integer/toHexString (.hashCode a))

获取
user=> (def a (atom 1))
#'user/a
user=> a
#<Atom@56092666: 1>  
user=> (Integer/toHexString (.hashCode a))
"56092666"

答案 1 :(得分:1)

这是atom的java对象id。除了帮助调试之外,它不打算使用。如果你真的想要它你可以在原子上调用str然后将其从字符串中删除并将其提供给Integer / parseInt