这是区别:
clj> (get 42 :anything) ; => nil
cljs> (get 42 :anything) ; => Error: No protocol method ILookup.-lookup defined for type number: 42
我不知道这是 ClojureScript 中的错误还是未记录的差异,或者我只是遗漏了一些东西。
这是区别:
clj> (get 42 :anything) ; => nil
cljs> (get 42 :anything) ; => Error: No protocol method ILookup.-lookup defined for type number: 42
我不知道这是 ClojureScript 中的错误还是未记录的差异,或者我只是遗漏了一些东西。
我是 ClojureScript 开发人员之一。get
应该接受任何东西,ClojureScript 的当前行为是一个错误。
您在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
由于底层实现如此不同,我希望看到未记录的函数使用(在这种情况下,提供数字而不是映射)导致不同的行为。