Clojure 2024状态调查!中分享您的想法。

欢迎!请参阅关于页面以了解更多有关该功能的说明。

0

重新标记

我在尝试将字面量映射作为dispatch-fn使用时,发现了defmulti宏的一个小边缘情况
(defmulti frob {:dispatch :map})
根据其参数列表,attr-map?参数是可选的,因此应该将其解析为其必需的dispatch-fn。但它被解释为变量元数据映射,并且函数被设置为nil
(frob :dispatch) ;; => 执行错误(NullPointerException)在scratch/eval68113(REPL:169)。;; 不能调用"clojure.lang.IFn.invoke(Object)",因为"this.dispatchFn"为null
显然使用映射来分发多方法并不是很有意义(等价于一个从arg->dispatch值到闭包的转换映射),但仍可能是一个需要考虑的情况。

1 答案

0
...