yes, but surely the return types are equivalent? On Monday, 24 May 2021 at 17:08:07 UTC+1 asv...@gmail.com wrote:
> > Interfaces are not equal: "m2() aer" and "m2() ber" has different return > type. Even compiler told you about it. > On Monday, May 24, 2021 at 9:20:51 AM UTC+3 Amnon wrote: > >> See https://play.golang.org/p/5x9JrD55WKc >> >> The interfaces aer and ber look equivalent. >> Both contain a function which returns nothing called m1 >> and a function which returns another an instance of the interface m2. >> >> If we comment out m2, then the code will compile. >> But otherwise we get an error: >> >> ./prog.go:14:5: cannot use a (type aer) as type ber in argument to bar: >> aer does not implement ber (wrong type for m2 method) have m2() aer want >> m2() ber >> >> even though aer and ber should be equivalent! >> >> package main >> >> type aer interface { >> m1() >> m2() aer >> } >> >> type ber interface { >> m1() >> m2() ber >> } >> >> func Foo(a aer) { >> bar(a) >> } >> >> func bar(b ber) { >> } >> >> func main() { >> } >> >> -- 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 golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/dcac0e8a-9dbd-4ac1-9670-b78243c9d2d1n%40googlegroups.com.