- Hands-On Full Stack Development with Go
- Mina Andrawos
- 236字
- 2021-07-02 12:33:32
Type embedding
But what if you would like a struct to inherit the methods of another struct? The closest feature that the Go language offers to the concept of inheritance is known as type embedding. This feature is best explained through an example. Let's go back to the Person struct type:
type Person struct{
name string
age int
}
func (p Person) GetName()string{
return p.name
}
func (p Person) GetAge()int{
return p.age
}
Now, let's say that we would like to create a new struct type called Student, which has all the properties and methods of Person, plus some more:
type Student struct{
Person
studentId int
}
func (s Student) GetStudentID()int{
return s.studentId
}
Notice that in the preceding code, we included the type Person inside the struct definition of type Student, without specifying a field name. This will effectively make the Student type inherit all the exported methods and fields of the Person struct type. In other words, we can access the methods and fields of Person directly from an object of type Student:
s := Student{}
//This code is valid, because the method GetAge() belongs to the embedded type 'Person':
s.GetAge()
s.GetName()
In Go, when a type gets embedded inside another type, the exported methods and fields of the embedded type are said to be promoted to the parent or embedding type.
Let's explore how to build interfaces in Go in the next section.
- Learn to Create WordPress Themes by Building 5 Projects
- JavaFX Essentials
- 樂高機器人設計技巧:EV3結構設計與編程指導
- Scientific Computing with Scala
- Active Directory with PowerShell
- Windows Phone 7.5:Building Location-aware Applications
- Scratch3.0趣味編程動手玩:比賽訓練營
- ASP.NET程序開發范例寶典
- 持續集成與持續交付實戰:用Jenkins、Travis CI和CircleCI構建和發布大規模高質量軟件
- 區塊鏈項目開發指南
- 算法圖解
- Ext JS 4 Plugin and Extension Development
- Python第三方庫開發應用實戰
- Java網絡編程實用精解
- Python算法交易實戰