评论者:alexmiller
我同意,这是一个好事,没有条件。
在hasheq中添加更多分支确实有代价——添加这些集合检查会影响每个hasheq。运行完整的Clojure构建,我发现以下类中出现了这种情况(注意,这些中没有一个是在Clojure构建本身中存在的Java集合)
clojure.lang.Var 107001502 java.lang.Class 2651389 java.lang.Character 2076322 java.util.UUID 435235 java.util.Date 430956 clojure.lang.Compiler$LocalBinding 116830 java.lang.Boolean 112361 java.util.regex.Pattern 325
我们将在每个hasheq的路径中添加4个额外的instanceof检查。这也可能会吹掉任何JVM内联。
Rich说“对于非值的hasheq/equiv,一切都可以不算数”,其中Java集合显然属于非值类别。