0

clojure repl には、任意の IDeref オブジェクトに対してポップアップする一意の番号があります。

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

この数値はどこに2e1c6600保存されていますか? また、どのようにしてこの数値を取得するのaでしょうか?

4

2 に答える 2

4

これは、基礎となる Java オブジェクトの hashCode の 16 進表現です。どうしても必要な場合は、(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 に答える