欢迎!有关如何使用本服务的更多信息,请参阅关于页面。
对于例如枚举(Enums)这样即使用户了解case,但难度较大以实现恒有时效分发的问题并不常见。
应通过宏包装来记录用case将任意常量分发的可能性。
Case已记录为接受所有可读形式作为测试常量。然而,通过包装在其他宏中,它也可以使用任何编译时已知常量作为测试常量。
有时这是合适的,例如,在基于java Enum进行分配时。其他时候,不那么合适,例如,在基于hash在虚拟机重启时改变的对象进行分配时(破坏AOT)。
这项技术是应用更一般技术的应用:将非文字传递给另一个宏。是否有其他宏具有类似的使用案例?
https://groups.google.com/d/topic/clojure/3yGjDO2YnjQ/discussion
评论者:bendlas
-这是重复的-
实际上,这是一个替代方案
评论者:petrglad
可能这个条目和CLJ-1367 linger了这么久,因为已经有了“condp”,可以按照以下方式使用:
(condp = test-value JavaClass/CONST1 result1 JavaClass/CONST2 result2)
这实际上是顺序的并且较慢,但与plain case大致一样简洁。
但是,如果这是一个将用于替换plain 'case'的格式,则应在文档中建议使用它。