我想
(identical? x y)
如果x和y都是同一个实例,只返回true?那么这个怎么样:
(def moo 4)
(def cow 4)
(identical? moo cow)
true
然而我认为moo和cow都是整数' 4的独立实例?是什么赋予了?
答案 0 :(得分:8)
在JVM中,-128
和127
之间的两个相等整数始终相同,因为它保持IntegerCache。
这意味着-128和127之间的两个相等整数始终是Integer
类的相同实例。
尝试比较不同的整数:
(identical? 4 (+ 2 2)) ; true
(identical? 127 127) ; true
(identical? 128 128) ; false
有关详细信息,请参阅this answer on Code Golf。