欢迎!请参阅 关于 页面以了解更多关于其工作方式的信息。
clojure.core/= 的文档称它在类型无关的方式比较数字。实际上,比较是类型相关的。如果上述陈述为真,那么 (= 1 1.0) 应返回 true,而不是 false;
clojure.core/=((链接: x) (链接: x y) (链接: x y & 更多))相等。如果 x 等于 y 则返回 true,如果不等于则返回 false。与Java x.equals(y) 相同,但它还适用于 nil,并且以类型无关的方式比较数字和集合。Clojure 的不可变数据结构将 equals()(以及因此 =)定义为值,而不是身份,比较。。
评论由:gfredericks 提供
这个文档对于不熟悉这种类型的人是肯定具有误导性的。数字可能是第一个出现在“类型无关的方式”一词中的人。对 {{==}} 函数的简短说明可能是有用的。
评论由:bordatoue
我发现==函数令人困惑例如(== 1 1.0) => true(== 1 1.0M) => false ; 这个比较有什么问题?
文档中写道如果所有数值都有相同值(类型无关)则返回非nil值
评论由:alexmiller
@George - 最后一个例子(== 1 1.0M)实际上是已经在1.6中修复的bug,现在会返回true。