0
我一直在看這個Clojure doto macro example from ClojureDocs,我無法弄清楚最終println
中:printed
關鍵字的用途。在這個Clojure doto宏示例中,printed關鍵字的用途是什麼?
當我在REPL進入例子,它打印出來,因爲我所期望的HashMap的,只是HashMap的後顯示的:printed
:
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
關鍵字在做什麼?