假设我有一个Java枚举。例如:如何在clojure中参数化访问Java枚举?
public enum Suits {CLUBS, DIAMONDS, HEARTS, SPADES};
通常情况下,我可以做Clojure中的一些与该枚举像这样:
(defn do-something []
(let [s Suits/DIAMONDS] (...)))
但是,我想写一个Clojure的功能,允许调用者指定枚举实例用途:
(defn do-something-parameterized [suit]
(let [s Suits/suit] (...)))
的想法是让呼叫者传递"DIAMONDS"
并有DIAMONDS
枚举实例得到了势必。
我可以有一个cond
匹配的参数,但似乎比必要的更笨重。我想我也可以使用宏来构造Suits/
添加到suit
。这是做到这一点的方式,还是有一种我不知道的非宏观方式?
那么明显,戴夫。我很尴尬,我忘记了这一点。 – stand
啊,好多了! –