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

Tutorial di base Golang

Istruzioni di controllo Golang

Funzione & Metodo Golang

Struttura Golang

Taglio & Array Golang

Stringa (String) Golang

Puntatore Golang

Interfaccia Golang

Concordanza Golang

Eccezioni (Error) Golang

Altri argomenti Golang

Struttura annidata Go

StrutturaIn Golang è un tipo definito dall'utente, che ci permette di creare un insieme di elementi di diversi tipi in un unico unità. Qualsiasi entità reale con un insieme di attributi o campi può essere rappresentata come una struttura. Il linguaggio Go permette le strutture annidate. Una struttura è un campo di un'altra struttura, detta struttura annidata. In altre parole, una struttura all'interno di un'altra struttura si chiama struttura annidata.

Sintassi:

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

Lasciate che ci serviamo di un esempio per discutere questo concetto:}}

//Struttura annidata 
package main 
  
import "fmt"
  
//Creazione della struttura
type Author struct { 
    name   string 
    branch string 
    year   int
} 
  
//Creazione della struttura annidata
type HR struct { 
  
    //Struttura dei campi
    details Author 
} 
  
func main() { 
  
    // Inizializzazione dei campi della struttura 
    result := HR{       
        details: Author{"Sona", "ECE", 2013}, 
    } 
  
    //Stampa il valore di output
    fmt.Println("\nDettagli dell'autore") 
    fmt.Println(result) 
}

Output:

Dettagli dell'autore
{{Sona ECE 2013}}

Esempio di struttura annidata 2:

package main 
  
import "fmt"
  
//Creazione della struttura 
type Student struct { 
    name   string 
    branch string 
    year   int
} 
  
//Creazione della struttura annidata
type Teacher struct { 
    name    string 
    subject string 
    exp     int
    details Student 
} 
  
func main() { 
  
    //Inizializzazione dei campi della struttura
    result := Teacher{ 
        name:    "Suman", 
        subject: "Java", 
        exp:     5, 
        details: Student{"Bongo", "CSE", 2}, 
    } 
   
    fmt.Println("Dettagli dell'insegnante") 
    fmt.Println("Il nome dell'insegnante: ", result.name) 
    fmt.Println("Disciplina: ", result.subject) 
    fmt.Println("Esperienza: ", result.exp) 
  
    fmt.Println("\nDettagli dello studente") 
    fmt.Println("Il nome dello studente: ", result.details.name) 
    fmt.Println("Il nome del dipartimento dello studente: ", result.details.branch) 
    fmt.Println("Età: ", result.details.year) 
}

Output:

Dettagli dell'insegnante
Il nome dell'insegnante:  Suman
Disciplina:  Java
Esperienza:  5
Dettagli dello studente
Il nome dello studente:  Bongo
Il nome del dipartimento dello studente:  CSE
Età:  2