【发布时间】:2020-05-23 19:23:28
【问题描述】:
假设我有一张地图{:x 1}。
我注意到我可以通过将 :x 应用于地图来查找它:
(:x {:x 1})
;=> 1
或者通过将地图应用于关键字:
({:x 1} :x)
;=> 1
这两种形式有什么区别?
【问题讨论】:
标签: clojure
假设我有一张地图{:x 1}。
我注意到我可以通过将 :x 应用于地图来查找它:
(:x {:x 1})
;=> 1
或者通过将地图应用于关键字:
({:x 1} :x)
;=> 1
这两种形式有什么区别?
【问题讨论】:
标签: clojure
地图和关键字都实现了IFn,因此可以用作函数。他们实现的功能是get。所以它基本上总是翻译成(get map key default)。
因此,您可以自行制定一些经验法则;需要考虑的一些事项:
({"a" 1} "a"))({:a 1} nil) 有效);如果您对两者都不确定:使用get
【讨论】: