我正在尝试创建一个def带有类型提示的字符串Clojure宏:
(defmacro def-string [name value]
`(def ^String ~name ~value))
(def-string db-host-option "db-host")
Run Code Online (Sandbox Code Playgroud)
当我macroexpand这样,类型提示丢失:
(macroexpand '(def-string db-host-option "db-host"))
;=> (def db-host-option "db-host")
Run Code Online (Sandbox Code Playgroud)
别担心提示这种类型的智慧.
为什么宏会丢失元数据?如何编写此宏或任何包含元数据的宏?