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