An Interest In:
Web News this Week
- April 25, 2024
- April 24, 2024
- April 23, 2024
- April 22, 2024
- April 21, 2024
- April 20, 2024
- April 19, 2024
May 24, 2021 04:09 pm GMT
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
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:
Tweet
View Full Article
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To