einen Satz, Karte und Vektor in Clojure implementieren sowohl IPersistentCollection und IFN- gegeben, wie funktioniert Clojure entscheiden, welche Implementierung von SayHi zu verwenden:Auflösung von Call Clojure-Protokoll, wenn Klasse implementiert mehrere Schnittstellen
(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
Können Sie mit dem clojure Quellcode zeigen, wo dies geschehen ist? Ich konnte es nicht finden – DanLebrero
@dAni aktualisierte die Antwort –