我尝试运行以下代码,但事实证明这是一个我不理解的错误。请善意地告诉我哪一部分是错的?
代码:
(defmulti test_mul
(fn [x y] (class y)))
(defmethod test_mul String [x y]
(str x y " String here"))
(defmethod test_mul java.lang.Number [x y]
(str x y " Number here"))
(test_mul 3 4)
错误显示:
clojure.lang.ArityException: Wrong number of args (2) passed to: core$eval6599$fn
AFn.java:437 clojure.lang.AFn.throwArity
AFn.java:43 clojure.lang.AFn.invoke
MultiFn.java:231 clojure.lang.MultiFn.invok
答案 0 :(得分:0)
如果我打开一个新的repl并输入你的代码,它运行完全正常,产生以下输出:
"34 number here"
因此,我怀疑您的repl会话中有一些导致错误的内容。
HTH
干杯