Go 嵌套结构体

结构在Golang中是一个用户定义的类型,它允许我们在一个单元中创建一组不同类型的元素。任何具有一组属性或字段的真实实体都可以表示为结构。Go语言允许嵌套结构。一个结构是另一个结构的字段,称为嵌套结构。换句话说,另一个结构中的结构称为嵌套结构。

语法:

type struct_name_1 struct{
  // Fields
} 
type struct_name_2 struct{
  variable_name  struct_name_1

}

让我们借助示例来讨论这个概念:

//嵌套结构体 
package main 
  
import "fmt"
  
//创建结构体
type Author struct { 
    name   string 
    branch string 
    year   int
} 
  
//创建嵌套结构体
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"
  
//创建结构 
type Student struct { 
    name   string 
    branch string 
    year   int
} 
  
//创建嵌套结构
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("经历: ", result.exp) 
  
    fmt.Println("\n学生详细资料") 
    fmt.Println("学生的名字: ", result.details.name) 
    fmt.Println("学生的部门名称: ", result.details.branch) 
    fmt.Println("年龄: ", result.details.year) 
}

输出:

老师详细情况
老师的名字:  Suman
学科:  Java
经历:  5

学生详细资料
学生的名字:  Bongo
学生的部门名称:  CSE
年龄:  2