使用单个空选项序列的 case 或单个选项序列和默认条款无法使用。
我期待
bq. (case 1 () :a :none)
返回 :none,但它失败并抛出了一个无用的异常:"未处理的 clojure.lang.ArityException: 传递给:core/max 的参数数量不正确 (-2)"
我期待 (case 1 () :a) 会失败并抛出 "java.lang.IllegalArgumentException: 没有匹配的条款",但相反,它也失败并抛出
"未处理的 clojure.lang.ArityException: 传递给:core/max 的参数数量不正确 (-2)"
这似乎不一致,因为当有其他选择时,传递空选项列表是可以的
bq. (case 1 () :a 2 :b :none)
如预期返回 :none
附带的补丁在进一步转换为 case* 之前删除了带有空测试列表的测试条款对,并添加了测试。