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

欢迎!请参阅关于页面以了解更多关于此的工作原理的信息。

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" 为空
显然,使用映射来分发多方法不是很合适(相当于从参数到分发值的闭合映射),但它可能是一个需要考虑的例子。

1 个答案

0
...