0
(defmacro get-color [color-name]
  `@(thi.ng.color.core/as-int32 (var-get (resolve (symbol "thi.ng.color.core"
                                            (str '~color-name))))))

我喜欢避免使用(var-get (resolve (symbol ... (str '~parem)))). 就像是thi.ng.color.core/(~color-name)

(我在一个非常小的个人项目中使用这个宏,我不在乎为这个用例创建一个宏是否真的很糟糕。虽然我想知道为什么它会在更大的项目中出现问题。)

4

1 回答 1

1
(require 'thi.ng.color.core)

(defmacro get-color
  [color-name]
  (let [sym (symbol "thi.ng.color.core"
                    (str color-name))]
    `@(thi.ng.color.core/as-int32 ~sym)))

(comment
  (get-color "RED") ;;=> 4294901760
  (get-color RED) ;;=> 4294901760
  )
于 2018-06-12T14:05:09.683 回答