I was playing with a design today where I had a number of types which match an interface and was surprised that I couldn't make use of this fact in passing their new functions into a method.

It seems that even though the returned type matches the interface within the function argument go doesn't do the coercion needed to make this happen, instead if errors: cannot use NewMyType (type func() (*MyType, error)) as type func() (MyInterface, error) in argument to wibble.

Here MyType satisfies MyInterface, a full example can be seen here:
https://play.golang.org/p/r27a081joD

My workaround is currently to run the function and pass the results in, but that seems like it should be unnecessary.
var i MyInterface
var err error
i, err = NewMyType()
wibble(i, err)

Where wibble is:
func wibble(i MyInterface, err error) {
...
}

I can't see any reason why this wouldn't be supported, so possibly a future version could make this possible?

    Regards
    Steve

--
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to