gpt4 book ai didi

clojure - Clojure 相同吗?如果被比较的东西实际上是同一个实例,函数只返回 true 吗?

转载 作者:行者123 更新时间:2023-12-02 16:09:01 25 4
gpt4 key购买 nike

我以为

(identical? x y)

仅当 x 和 y 是同一个实例时才返回 true?那么这个呢:

(def moo 4)
(def cow 4)

(identical? moo cow)
true

但我认为 moo 和 cow 都是整数“4”的单独实例?是什么赋予了?

最佳答案

在 JVM 中,-128127 之间的两个相等的整数始终相同,因为它维护 IntegerCache .

这意味着 -128 和 127 之间的两个相等的整数始终是 Integer 类的同一个实例。

尝试比较不同的整数:

(identical? 4 (+ 2 2)) ; true
(identical? 127 127) ; true
(identical? 128 128) ; false

参见this answer on Code Golf了解更多信息。

关于clojure - Clojure 相同吗?如果被比较的东西实际上是同一个实例,函数只返回 true 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com