Some people in comments jump to the conclusion that Go allows conflicting names in embedded structs. It doesn't not – for the embedded structs of the same depth. These won't compile: type Bad struct { Name string Name string } type A struct{ Name string } type B struct{ Name string } type C struct { A B } bad.Name() // compile error: other declaration of Name c.Name() // compile error: ambiguous selector c.Name The c…
I feel like sometimes people just want to complain.