如果您为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)
`