【发布时间】:2013-01-23 20:29:33
【问题描述】:
跟进这个问题:Idiomatic clojure map lookup by keyword
可以通过多种方式使用 clojure 访问地图。
(def m {:a 1}
(get m :a) ;; => 1
(:a m) ;; => 1
(m :a) ;; => 1
我知道我主要使用第二种形式,有时使用第三种,很少使用第一种。使用它们的优点(速度/可组合性)是什么?
【问题讨论】:
-
查看您链接的问题的答案。 get 唯一想到的另一件事是 3-arity 版本(未找到获取映射键),您可以在其中(双关语)指定默认值。
-
@A.Webb 您可以为所有三种用途指定默认值:
(:k m default)和(m :k default)都可以,当然前提是 m 不为零。 -
@amalloy 啊,很酷,谢谢你指出这一点!
标签: clojure