2015-01-27 3 views
2
(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을 반환합니다. Clojure에서와 마찬가지로 Clojurescript에서 조회 작업을 수행하는 가장 좋은 방법은 무엇입니까? 내가 구현해야 할 것 같습니다클로저 스크립트로 맵 키로 기록

+0

현재 마스터를 실행하는 ClojureScript REPL에서 이것을 시도했지만 예상대로 작동합니다. 구 버전을 사용하고 계신가요? –

+0

감사합니다. 그거야. 내 네임 스페이스에서 제대로 작동하지 않는다고 선언 한 레코드에도 문제가있었습니다. 내 '밖으로'디렉터리를 청소하고 결국 처음부터 새 프로젝트를 만든이 문제가 해결되었습니다. – optevo

답변

1

는 clojurescript에 기록을 위해 자신을 동일 :

(defrecord Pot [a]) 

(extend-type Pot 
    IEquiv 
    (-equiv [this that] (and (instance? Pot that) (= (into {} this) (into {} that))))) 

이 함께 잘 작동합니다. 나는 Clojurescript가 기본적으로 레코드에 대해 equals를 구현할 것이라고 생각했을 것이다.

관련 문제