欢迎!有关如何使用此功能的更多信息,请参阅 关于页面。
(let [{x :x} '({:x "foo"})] x);; => "foo"
这与工具无关 - 这仅仅是 Clojure 中解构的方式
user=> (clojure.pprint/pprint (destructure '[{a :a} []])) [map__6 [] map__6 (if (clojure.core/seq? map__6) (if (clojure.core/next map__6) (clojure.lang.PersistentArrayMap/createAsIfByAssoc (clojure.core/to-array map__6)) (if (clojure.core/seq map__6) (clojure.core/first map__6) clojure.lang.PersistentArrayMap/EMPTY)) map__6) a (clojure.core/get map__6 :a)] nil
这种特定行为是实施以下票据的结果: https://clojure.atlassian.net/browse/CLJ-2603
好的,我刚刚意识到这可能是在 shadow-cljs 或其他下游工具中可能出现的问题。