(defrecord Pot [a])
(def p (Pot. 1))
(def m {p 2})
(m p) ; Returns 2 in both Clojure and Clojurescript
(m (Pot. 1)) ; Returns 2 in Clojure and nil/null in Clojurescript
在Clojure中,使用原始键或新构造的键查找值将返回所需的值。但是,在Clojurescript中,使用新构造的键返回null / nil。在Clojures中使查找工作的最佳方法是什么,就像在Clojure中一样?
答案 0 :(得分:1)
看起来我必须为clojurescript中的记录实现equals:
(defrecord Pot [a])
(extend-type Pot
IEquiv
(-equiv [this that] (and (instance? Pot that) (= (into {} this) (into {} that)))))
适用于此。我原以为Clojurescript会默认为记录实现等号。