我正在浏览一些oo clojure代码,以便更好地理解它的错综复杂。
很多时候,当有哈希地图并且有人想拿钥匙时,他们会写
(-> % :hash :key)
,我认为他们可以写(:key :hash)
。
我想我的问题是,(-> % :hash :key)
在做什么?
答案 0 :(得分:4)
如果您有像(def mymap {:foo {:bar "s_bar"}})
这样的哈希映射,则宏将转换
(-> mymap :foo :bar)
进入
(:bar (:foo mymap))
,结果为"s_bar"
。
此处宏用于访问嵌套哈希图的值,它类似于(get-in mymap [:foo :bar])