> However, Go’s interface system works at runtime. The specific type of a value passed into an interface parameter is resolved while the program runs.
> However, Go’s interface system works at runtime. The specific type of a value passed into an interface parameter is resolved while the program runs.
Later when you pass this value around and assign it to places, sure, there may be a different type depending on where the interface value came from. But the construction of these values is very much static.
In this sense I wouldn't really call this "resolv[ing] while the program runs" unless you take a very broad sense of "resolution."
Whereas the runtime resolution of operations performed through an interface (dynamic dispatch) is the primary purpose of and use care for interfaces, with the dynamic resolution of wrapped types (type erasure / downcasts / type switches) is the secondary one.