【发布时间】:2011-02-03 22:53:56
【问题描述】:
在 Clojure 1.2 中:
(defprotocol PP
(foo [bar])
(foo [bar baz]))
=> PP
(extend-protocol PP
Object
(foo [bar] 1)
(foo [bar baz] 2))
=> nil
(foo "hello!")
=> #<CompilerException java.lang.IllegalArgumentException: No single method: foo of interface: PP found for function: foo of protocol: PP
我哪里错了?我希望看到 1 作为 foo 函数的单参数版本的结果,因为“你好!”显然是 java.lang.Object 的一个实例。
【问题讨论】: