2017-04-07 63 views
2

在下面的代碼中,我注意到^字符之前似乎是一個地圖數據結構。什麼是^用於什麼,或者^{用於什麼?^{mean是什麼意思?

(ns temper.core 
    (:gen-class) 
    (:require [mount.core :as mount])) 

(mount/defstate ^{:on-reload :noop} 
       http-server 
       :start 
       (http/start 
       (-> env 
        (assoc :handler (lazy-run 'temper.handler 'app)) 
        (update :port #(or (-> env :options :port) %)))) 
       :stop 
       (http/stop http-server)) 

回答

3

^字符是用於元數據。請參閱https://clojure.org/reference/reader#macrocharshttps://clojure.org/reference/metadata

^{:on-reload :noop}(with-meta obj {:on-reload :noop})是等同的。

+0

這是Clojure中爲數不多的「閱讀器宏」之一。你可以在這裏找到一個完整的列表:https://clojure.org/reference/reader –

+0

我試圖在clojuredocs上找到這些字符組合,但它們沒有出現在搜索框中。我現在將在GitHub上提出它。 – RFVenter