DEV Community

loading...

Discussion on: The Problem with Interfaces, and how Go Fixed it

dean profile image
Dean Bassett Author

Go is statically typed. If you were to pass a Dog struct (which can't Quack()) into a function that takes a Duck interface, you will hit a compile-time error.

Thread Thread
danielw profile image
Daniel Waller (he/him)

If I understand correctly Go isn't even strictly duck typed.

The type inference doesn't happen at runtime but at compile time, giving very clear compiler errors.
So I don't really see how this kind of typing can lead to runtime errors in Go's case

Thread Thread
dean profile image
Dean Bassett Author

The only time it would result in a runtime error is when casting, as per every staticly typed language.

Thread Thread
danielw profile image
Daniel Waller (he/him)

That's what I thought! So I really don't get all this duck typing trash talk some people are throwing around in regards to Go