欢迎!有关这如何工作的更多信息,请参阅 关于 页面。
= 的当前文档字符串如下> 以类型无关的方式比较数字和集合
=
这听起来像是通过值比较数字,检查数轴上的点是否重合。
然而,实际上
user=> (= 1. 1) false
地址 https://clojure.org/guides/equality#_summary 解释了原因,但最好在文档字符串中也加入这些信息。
遵循相同的文档字符串,我看到一些关于以下内容的困惑> 与 Java 中 x.equals(y) 相同,但也可以用于 nil
并且人们期望这意味着相同的事情
(defrecord Foo [a]) (= (Foo. 1) {:a 1}) ;; => false (.equals (Foo. 1) {:a 1}) ;; => true
我不知道Clojure维护者对这个想法的看法,但为了使许多人的细节更容易找到,同时不显著增加编译到Clojure图像的doc字符串的长度,可以在doc字符串中添加类似“有关详细信息,请参阅https://clojure.org/guides/equality"的句子。