結構在Golang中是一個用戶定義的類型,它允許我們在一個單元中創(chuàng)建一組不同類型的元素。任何具有一組屬性或字段的真實實體都可以表示為結構。Go語言允許嵌套結構。一個結構是另一個結構的字段,稱為嵌套結構。換句話說,另一個結構中的結構稱為嵌套結構。
語法:
type struct_name_1 struct{ // Fields } type struct_name_2 struct{ variable_name struct_name_1 }
讓我們借助示例來討論這個概念:
//嵌套結構體 package main import "fmt" //創(chuàng)建結構體 type Author struct { name string branch string year int } //創(chuàng)建嵌套結構體 type HR struct { //字段結構 details Author } func main() { // 初始化結構體字段 result := HR{ details: Author{"Sona", "ECE", 2013}, } //打印輸出值 fmt.Println("\n作者的詳細信息") fmt.Println(result) }
輸出:
作者的詳細信息 {{Sona ECE 2013}}
嵌套結構體示例2:
package main import "fmt" //創(chuàng)建結構 type Student struct { name string branch string year int } //創(chuàng)建嵌套結構 type Teacher struct { name string subject string exp int details Student } func main() { //初始化結構字段 result := Teacher{ name: "Suman", subject: "Java", exp: 5, details: Student{"Bongo", "CSE", 2}, } fmt.Println("老師詳細情況") fmt.Println("老師的名字: ", result.name) fmt.Println("學科: ", result.subject) fmt.Println("經(jīng)歷: ", result.exp) fmt.Println("\n學生詳細資料") fmt.Println("學生的名字: ", result.details.name) fmt.Println("學生的部門名稱: ", result.details.branch) fmt.Println("年齡: ", result.details.year) }
輸出:
老師詳細情況 老師的名字: Suman 學科: Java 經(jīng)歷: 5 學生詳細資料 學生的名字: Bongo 學生的部門名稱: CSE 年齡: 2