Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 24, 2021 04:09 pm GMT

Is there any difference between struct embedding and defining a field with the struct you want to embed?

So I'm looking at this article on Structure Embedding in GoLang.
When reading, I came upon this: "Note that the access co.b is a syntactic convenience; we can also do it more explicitly with co.Base.b.".

So if that's just a "syntactic convenience", is structure embedding equal to just adding a field?
E.g.

type A struct {  Msg string;}func (this *A) Print() {  fmt.Println("A: "+this.Msg);}type B struct {  A;}func (this *B) Print() {  fmt.Println("B: "+this.Msg);}

==

type A struct {  Msg string;}func (this *A) Print() {  fmt.Println("A: "+this.Msg);}type B struct {  A A;}func (this *B) Print() {  fmt.Println("B: "+this.A.Msg);}



Putting:

package main;import "fmt";type A struct {  Msg string;}func (this *A) Print() {  fmt.Println("A: "+this.Msg);}type B struct {  A;}func (this *B) Print() {  fmt.Println("B: "+this.Msg);}func main() {  var test B = B{};  test.Msg = "Hello!";  test.A.Print();  test.Print();}

into SoloLearn's Go playground that seems to be the case.


So is there any difference, or am I right about them being the exact same thing?


Original Link: https://dev.to/baenencalin/is-there-any-difference-between-struct-embedding-and-defining-a-field-with-the-struct-you-want-to-embed-112

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To