clojure.core / map表现出令人惊讶的方式

问题描述 投票:-1回答:1
user=> (map :one '({:one "one"}))
("one")
user=> (map :name '(r b))
(nil nil)
user=> (:name r)
"Steve"
user=> (map :one '({:one "one"} {:one "two"}))
("one" "two")
user=> r
{:color :red, :name "Steve"}
user=> 

地图,如您在此处看到的,似乎可以像预期的那样对哈希表列表起作用,但是对于已绑定到符号rb的地图,地图将返回nil

这里发生了什么,为什么映射不返回r的正确值(哪个IMO应该是字符串“ Steve”)

clojure clojurescript
1个回答
3
投票

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

这里您正在调用(:name 'r),并且那个f返回nil

© www.soinside.com 2019 - 2024. All rights reserved.