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