结构在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