欢迎!请查看 关于 页面以了解更多关于这是如何工作的信息。
(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 或其他下游工具中的问题。