Estructura anidada en Golang

Una estructura o struct en Golang es un tipo definido por el usuario, lo que nos permite crear un grupo de elementos de diferentes tipos en una sola unidad. Cualquier entidad del mundo real que tenga algún conjunto de propiedades o campos se puede representar como una estructura. El lenguaje Go permite una estructura anidada. Una estructura que es el campo de otra estructura se conoce como estructura anidada. O en otras palabras, una estructura dentro de otra estructura se conoce como Estructura Anidada.

Sintaxis:

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

}

Discutamos este concepto con la ayuda de los ejemplos:

Ejemplo 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)
}

Producción:

Details of Author
{{Sona ECE 2013}}

Ejemplo 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)
}

Producción:

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

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *