- Autore

- Nome
- Nelson Silva
- Social
Introduzione
In Go, una "struct" è una collezione composta da campi che consente di raggruppare variabili di tipi diversi. Le struct sono estremamente utili per definire e creare tipi di dati personalizzati, fornendo un modo organizzato di rappresentare entità e i loro attributi.
- Definire e Inizializzare le struct
- Accesso ai Campi della struct
- Struct Annidate
- Puntatori alle struct
- Metodi e struct
Definire e Inizializzare le struct
Per definire una struct, utilizziamo la parola chiave type seguita dal nome della struct e dalla parola chiave struct:
type Persona struct {
Nome string
Eta int
Email string
}
Per inizializzare una struct, possiamo assegnare valori ai suoi campi usando la sintassi delle parentesi graffe:
p := Persona{"Nelson", 28, "[email protected]"}
Oppure usando i nomi dei campi:
p := Persona{
Nome: "Nelson",
Eta: 28,
Email: "[email protected]",
}
Accesso ai Campi della struct
Per accedere a un campo specifico della struct, utilizziamo l'operatore .:
nome := p.Nome // "Nelson"
eta := p.Eta // 28
Struct Annidate
È possibile avere struct all'interno di altre struct, una caratteristica che può essere utile per rappresentare relazioni gerarchiche o complesse:
type Indirizzo struct {
Via string
Citta string
Paese string
}
type Persona struct {
Nome string
Eta int
Luogo Indirizzo
}
Puntatori alle struct
Come altre variabili in Go, le struct possono essere referenziate anche tramite puntatori:
puntatoreSuPersona := &p
puntatoreSuPersona.Nome = "Pietro" // Modifica il nome nella struct originale
Metodi e struct
In Go, possiamo definire metodi specifici per le struct, consentendo che operazioni specifiche vengano eseguite con o su quelle struct:
func (p Persona) Presentarsi() string {
return "Ciao, mi chiamo " + p.Nome
}
messaggio := p.Presentarsi() // "Ciao, mi chiamo Nelson"
Conclusione
Le struct in Go sono strumenti potenti e flessibili che ci permettono di creare rappresentazioni chiare e organizzate di entità e dei loro attributi. Padroneggiare le struct è fondamentale per qualsiasi sviluppatore Go che desideri creare applicazioni robuste e ben strutturate.