我一直在看 ClojureDocs 中的这个 Clojure doto 宏示例,但我无法弄清楚:printed
final 中关键字的用途println
。
当我在 REPL 中输入示例时,它会按照我的预期打印出 HashMap,只是:printed
在 HashMap 之后显示一个:
user=> (doto (java.util.HashMap.) (.put "a" 1) (.put "b" 2) (println :printed))
#<HashMap {b=2, a=1}> :printed
{"b" 2, "a" 1}
我认为println
需要一个占位符,以便它知道等待来自doto
宏的某些内容。所以我试着看看如果我省略了我会得到什么:printed
:
user=> (doto (java.util.HashMap.) (.put "a" 1) (.put "b" 2) (println))
#<HashMap {b=2, a=1}>
{"b" 2, "a" 1}
这个打印相同的东西,但使 HashMap 没有:printed
旁边。鉴于此结果,该doto
示例不应该给出如下内容:
#<HashMap {b=2, a=1}>
{"b" 2, "a" 1} :printed
:printed
关键字在做什么?