假設我有一個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
啊,好多了! –