0

在 clojure repl 中,任何 IDeref 对象都会弹出一个唯一编号

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

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

4

2 回答 2

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"
于 2012-09-14T05:56:17.950 回答
1

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

于 2012-09-14T05:22:45.537 回答