Golang 嵌套结构体

Golang 嵌套结构体

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

语法

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

}

让我们借助于例子来讨论这个概念。

例1 :

// Golang program to illustrate
// the nested structure
package main
  
import "fmt"
  
// Creating structure
type Author struct {
    name   string
    branch string
    year   int
}
  
// Creating nested structure
type HR struct {
  
    // structure as a field
    details Author
}
  
func main() {
  
    // Initializing the fields
    // of the structure
    result := HR{
      
        details: Author{"Sona", "ECE", 2013},
    }
  
    // Display the values
    fmt.Println("\nDetails of Author")
    fmt.Println(result)
}

输出

Details of Author
{{Sona ECE 2013}}

例2 :

// Golang program to illustrate
// the nested structure
package main
  
import "fmt"
  
// Creating structure
type Student struct {
    name   string
    branch string
    year   int
}
  
// Creating nested structure
type Teacher struct {
    name    string
    subject string
    exp     int
    details Student
}
  
func main() {
  
    // Initializing the fields
    // of the structure
    result := Teacher{
        name:    "Suman",
        subject: "Java",
        exp:     5,
        details: Student{"Bongo", "CSE", 2},
    }
  
    // Display the values
    fmt.Println("Details of the Teacher")
    fmt.Println("Teacher's name: ", result.name)
    fmt.Println("Subject: ", result.subject)
    fmt.Println("Experience: ", result.exp)
  
    fmt.Println("\nDetails of Student")
    fmt.Println("Student's name: ", result.details.name)
    fmt.Println("Student's branch name: ", result.details.branch)
    fmt.Println("Year: ", result.details.year)
}

输出

Details of the Teacher
Teacher's name:  Suman
Subject:  Java
Experience:  5

Details of Student
Student's name:  Bongo
Student's branch name:  CSE
Year:  2

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程