2024年Clojure调查!中分享您的想法。

欢迎!请参阅关于页面以获取有关如何工作的更多资讯。

0
错误

如果您为into提供的for创建hash-map的条目提供一个序列类型的vector而不是向量类型,则错误信息会误导。

user=> (into {} '((:a 0) (:b 1))) ClassCastException clojure.lang.Keyword cannot be cast to java.util.Map$Entry clojure.lang.ATransientMap.conj (ATransientMap.java:44)

如我们所见,它报告了条目中的第一个项目的类型,而实际上应该报告条目本身的类型,这可能会特别令人困惑,如果条目中的键实际上是有效的条目类型

`
user=> (into {} '((["a" 1] ["b" 2]) (["c" 3] ["d" 4])))
ClassCastException clojure.lang.PersistentVector cannot be cast to java.util.Map$Entry clojure.lang.ATransientMap.conj (ATransientMap.java:44)

user=> (pst *e)
ClassCastException clojure.lang.PersistentVector cannot be cast to java.util.Map$Entry

clojure.lang.ATransientMap.conj (ATransientMap.java:44)
clojure.lang.ATransientMap.conj (ATransientMap.java:17)
clojure.core/conj! (core.clj:3358)
clojure.core/conj! (core.clj:3350)
clojure.lang.PersistentList.reduce (PersistentList.java:141)
clojure.core/reduce (core.clj:6747)
clojure.core/into (core.clj:6815)

`

1 个答案

0
参考:https://clojure.atlassian.net/browse/CLJ-1651 (由 alex+import 报告)
...