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