defmethod / multi:clojure.lang.ArityException:错误的args(2)传递给:

时间:2014-06-16 14:47:25

标签: clojure

我尝试运行以下代码,但事实证明这是一个我不理解的错误。请善意地告诉我哪一部分是错的?

代码:

(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

1 个答案:

答案 0 :(得分:0)

如果我打开一个新的repl并输入你的代码,它运行完全正常,产生以下输出:

"34 number here"

因此,我怀疑您的repl会话中有一些导致错误的内容。

HTH

干杯

相关问题