That's correct, the most specialized implementation is used. In the case
where more there is no implementation more specialized than another (two
interfaces are extended to a protocol and a class implements both) then an
arbitrary implementation from the available ones will be selected.
Extending a Object and nil to a protocol is a good way to provide a default
impl.
Another option is to wrap the protocol functions in another function and
testing for satisfies?.
Il giorno 17/nov/2014 10.49, pmf phil.fr...@gmx.de ha scritto:
Is there a way to provide a default (fallback) implementation for a method
defined in a defprotocol directive? I do realize that I could extend the
protocol for type java.lang.Object, but this raises the question about how
protocol implementations with extend are sorted, i.e. how specializations
of types of the same hierarchy are resolved. Is the most specialized
implementation used if I implement a protocol for a class as well as its
parent class and if yes, is this independent of the order of definition for
the protocol extensions?
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with
your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an
email to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.