Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結構體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項

Go 嵌套結構體

結構在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
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清