Dear Alex (alex-coder), Here is an easy rule to remember. There is one, and only one, way to get dynamic dispatch in Go. That is: calling through an interface.
Your example is using embedding, not calling through an interface, so it is not relevant to how dynamic dispatch works. You have guessed that Go works like other languages, and unfortunately your guess was wrong, and this has led you to the wrong conclusion. Embedding will automatically generate methods from the embedded type on the outer type, but it will not give dynamic dispatch. As above, the rule to remember is that _only_ calling-through-an-interface variable gives dynamic dispatch in Go. A simple demonstration: https://go.dev/play/p/WzhwvLB9VEY Now that is understood, my recommendation is that you should usually still avoid interfaces for as long as possible, until you absolutely must deploy them, because interfaces make it harder to debug your program, and can be slower. best wishes, Jason p.s. See also https://github.com/glycerine/thinkgo for other hints. On Friday, November 14, 2025 at 5:33:11 PM UTC alex-coder wrote: пятница, 14 ноября 2025 г. в 20:27:55 UTC+3, alex-coder: Hi, Brain. the sample is there: Go Playground - The Go Programming Language <https://go.dev/play/p/PxUhKHgnfc0> Regards. пятница, 14 ноября 2025 г. в 16:37:54 UTC+3, Brian Candler: On Friday, 14 November 2025 at 12:13:09 UTC alex-coder wrote: Due to absence in GO dynamic dispatching Not sure what you mean? Method calls on interface values are dynamic dispatching. -- 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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/3298a830-4a77-4202-96dd-a6b720192ce0n%40googlegroups.com.
