2012-09-14 45 views
0

在Clojure的REPL數量部分的參考,有一個唯一的編號,對於任何IDeref對象彈出如何獲得原子/ REF /未來

user=> (def a (atom 1)) 
#'user/a 
user=> a 
#<[email protected]: 1> 

哪裏是這個數字 - 2e1c6600 - 存儲,我們如何從a獲取這個數字?

+1

這是一個實現細節得到它,你不應該擔心它 – Ankur

回答

4

這是基本Java對象的hashCode的十六進制表示。如果您確實需要它,你可以使用(Integer/toHexString (.hashCode a))

user=> (def a (atom 1)) 
#'user/a 
user=> a 
#<[email protected]: 1> 
user=> (Integer/toHexString (.hashCode a)) 
"56092666" 
+4

或'系統/ idenntityHashCode',http://docs.oracle.com/javase/ 1.5.0 /文檔/ API /爪哇/郎/ System.html#identityHashCode(java.lang.Object中) –

1

即原子的Java對象的id。它的目的不是爲了幫助調試。如果你真的想它,你可以調用STR的原子再剁出來的字符串,並將其輸送到整數/ parseInt函數