欢迎!请参阅关于页面,了解相关工作方式的相关信息。
= 的当前文档字符串表示> 以类型无关的方式比较数字和集合
=
这让人听起来像是通过值比较数字,检查数字线上的点是否重合。
而实际上
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图像中的文档字符串的长度,那就是在文档字符串中添加一句像“更多信息请参阅https://clojure.org/guides/equality”的话。