type I interface { m()bool }
type T struct { x bool }
func (o T) m()bool { return o.x } // o:object
func (p *T) m()bool { return p.x } // p:pointer
both does not work. it is not possible to implement I for T and *T ( m
already defined )
func fi(i I){}
func fp(i*I){}
fi(o) if T implements I
fi(p) if *T implements I
fp(p) or fp(&o) does not work at all, cause i dont know, how to implement
*I
looks little strange to me.
if T implements I than, p*T references/pointsto something implementing I,
and
func(i*I){}(p) and
func(i I){}(o) should work
?!
why not something like 'struct T implements I {}'
could be checked and user of T would know what T can do / where T can be
used (what T is intended to be)
if there is a type T implementing about 20 methods
do i have to search all interfaces for what interface actual is implemented
by this type ?
check for I asking for m1
check for I asking for m2
check for I asking for m1 and m2 .. (20 methods, lot of possibilities..)
thanks++, Andi
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/golang-nuts/CAFxc85Wz2Jozsx_fsJJD2Kca64EHivF5w-P_54VQw%3DKTZY6UuA%40mail.gmail.com.