tôi đang cố gắng để tạo ra một chút Clojure macro def
sa String với một loại gợi ý:Clojure defmacro mất metadata
(defmacro def-string [name value]
`(def ^String ~name ~value))
(def-string db-host-option "db-host")
Khi tôi macroexpand
nó, kiểu gợi ý bị mất:
(macroexpand '(def-string db-host-option "db-host"))
;=> (def db-host-option "db-host")
Đừng bận tâm về sự khôn ngoan của loại gợi ý điều này.
Tại sao macro mất siêu dữ liệu? Làm cách nào để viết macro này hoặc bất kỳ macro nào bao gồm siêu dữ liệu?
Ahh! Tất nhiên, macro đọc được đánh giá trước defmacros. Cảm ơn. – Ralph