Go har ingen arv — i stedet bruger det composition via struct embedding. Ved at indlejre en struct (eller interface) inde i en anden får den ydre type de indlejrede types felter og metoder direkte. Dette er Go svar på kode-genbrug, der foretrækker "har-en" composition frem for "er-en" arv.
Indlejring af en struct
Animal {
Name
}
Eat() {
a.Name +
}
Dog {
Animal
Breed
}
d := Dog{
Animal: Animal{Name: },
Breed: ,
}
fmt.Println(d.Name)
fmt.Println(d.Eat())
