5
鉴于Clojure的一组,地图和矢量同时实现IPersistentCollection和IFN,如何Clojure的决定哪种实现的sayHi的使用方法:分辨率的Clojure协议呼叫时类实现多个接口
(defprotocol SayHi
(hi [this]))
(extend-protocol SayHi
clojure.lang.IPersistentCollection
(hi [_] (println "Hi from collection"))
clojure.lang.IFn
(hi [_] (println "Hi from Fn!"))
clojure.lang.IPersistentSet
(hi [_] (println "Hi from set!")))
(hi #{})
Hi from set!
(hi [])
Hi from collection
你能指出Clojure的源代码中做到这一点?我一直无法找到它 – DanLebrero
@dAni更新了答案 –