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,如您在此处所见,对于哈希图列表似乎按预期工作,但对于已绑定到符号 r
和 b
的映射,map returns nil
。
这是怎么回事,为什么 return 没有映射 r
的正确值(IMO 应该是字符串 "Steve")
由于 '(r b)
,您得到的是文字符号 r
和 b
,而不是它们解析为的地图。
你在这里调用 (:name 'r)
和那个 returns nil
.
(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,如您在此处所见,对于哈希图列表似乎按预期工作,但对于已绑定到符号 r
和 b
的映射,map returns nil
。
这是怎么回事,为什么 return 没有映射 r
的正确值(IMO 应该是字符串 "Steve")
由于 '(r b)
,您得到的是文字符号 r
和 b
,而不是它们解析为的地图。
你在这里调用 (:name 'r)
和那个 returns nil
.