区别在于:
clj> (get 42 :anything) ; => nil
cljs> (get 42 :anything) ; => Error: No protocol method ILookup.-lookup defined for type number: 42
我不知道这是ClojureScript中的错误还是未记录的错误,或者我只是遗漏了一些东西。
答案 0 :(得分:5)
我是ClojureScript开发人员之一。 get
应该接受任何东西,ClojureScript的当前行为是一个bug。
答案 1 :(得分:4)
你在这里滥用get
- 你的意思是提供地图参数吗?
,例如,
cljs> (get {} 42 :anything)
;=> :anything
在Clojure / ClojureScript中,get
假定第一个参数的映射:
clj> (doc get)
-------------------------
clojure.core/get
([map key] [map key not-found])
Returns the value mapped to key, not-found or nil if key not present.
nil
由于底层实现是如此不同,我希望看到未记录的函数使用(在这种情况下,提供数字而不是地图)导致不同的行为。
答案 2 :(得分:1)