医生case
说
与 cond 和 condp 不同,case 会进行恒定时间调度……所有形式的常量表达式在 case 中都是可以接受的。
我想从case
的恒定时间调度中受益,以匹配 Java 枚举。Java 的switch
语句适用于枚举,但在 Clojure 中执行以下操作:
(defn foo [x]
(case x
java.util.concurrent.TimeUnit/MILLISECONDS "yes!"))
(foo java.util.concurrent.TimeUnit/MILLISECONDS)
结果是:IllegalArgumentException No matching clause: MILLISECONDS
不支持枚举case
吗?难道我做错了什么?我必须求助cond
还是有更好的解决方案?