DEV Community

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

 
dean profile image
dean

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

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