clojure.core/map 以一种非常令人惊讶的方式表现

clojure.core/map behaving in a very surprising manner

(map :one '({:one "one"}))
;; ("one")
(map :name '(r b))
;; (nil nil)
(:name r)
;; "Steve"
(map :one '({:one "one"} {:one "two"}))
;; ("one" "two")
r
;; {:color :red, :name "Steve"}

Map,如您在此处所见,对于哈希图列表似乎按预期工作,但对于已绑定到符号 rb 的映射,map returns nil

这是怎么回事,为什么 return 没有映射 r 的正确值(IMO 应该是字符串 "Steve")

由于 '(r b),您得到的是文字符号 rb,而不是它们解析为的地图。

你在这里调用 (:name 'r) 和那个 returns nil.