English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base en Golang

Instructions de contrôle en Golang

Fonctions & méthodes en Golang

Structures en Golang

Coupes & tableaux en Golang

Chaînes (String) en Golang

Pointeurs en Golang

Interfaces en Golang

Concurrence (Concurrency) en Golang

Erreurs (Error) de Golang

Autres éléments divers de Golang

Go Nested Structure

StructureEn Golang, c'est un type utilisateur défini qui nous permet de créer un ensemble d'éléments de différents types dans un seul unité. Toute entité réelle qui a un ensemble d'attributs ou de champs peut être représentée par une structure. Le langage Go permet les structures imbriquées. Une structure est un champ d'une autre structure, appelée structure imbriquée. En d'autres termes, une structure dans une autre structure est appelée structure imbriquée.

Syntax :

type struct_name_1 struct{}}
  // Champs
} 
type struct_name_2 struct{}}
  nom_variable  nom_structure_1
}

Permettons de discuter de ce concept à l'aide d'un exemple :

//Structure imbriquée 
package main 
  
import "fmt"
  
//Création de structure
type Author struct { 
    name   string 
    branch string 
    year   int
} 
  
//Création de structure imbriquée
type HR struct { 
  
    //Structure des champs
    details Author 
} 
  
func main() { 
  
    // Initialisation des champs de structure 
    result := HR{       
        details: Author{"Sona", "ECE", 2013, 
    } 
  
    //Affichage des valeurs de sortie
    fmt.Println("\nDétails de l'auteur") 
    fmt.Println(result) 
}

Sortie :

Détails de l'auteur
{{Sona ECE 2013}}

Exemple de structure imbriquée2:

package main 
  
import "fmt"
  
//Création de structure 
type Student struct { 
    name   string 
    branch string 
    year   int
} 
  
//Création de structure imbriquée
type Teacher struct { 
    name    string 
    subject string 
    exp     int
    details Student 
} 
  
func main() { 
  
    //Initialisation des champs de structure
    result := Teacher{ 
        name:    "Suman", 
        subject: "Java", 
        exp: int     5, 
        details: Student{"Bongo", "CSE", 2, 
    } 
   
    fmt.Println("Détails complets du professeur") 
    fmt.Println("Nom du professeur: ", result.name) 
    fmt.Println("Discipline: ", result.subject) 
    fmt.Println("Expérience: ", result.exp) 
  
    fmt.Println("\nDétails de l'étudiant") 
    fmt.Println("Nom de l'étudiant: ", result.details.name) 
    fmt.Println("Nom du département de l'étudiant: ", result.details.branch) 
    fmt.Println("Âge: ", result.details.year) 
}

Sortie :

Détails complets du professeur
Le nom du professeur:  Suman
Discipline:  Java
Expérience:  5
Détails de l'étudiant
Le nom de l'étudiant:  Bongo
Le nom du département de l'étudiant:  CSE
Age:  2