Cosa sono le strutture in Golang

Cosa Sono Le Strutture In Golang



Nel linguaggio Go, una struttura è una raccolta di variabili (campi) raggruppate sotto un unico nome. È un tipo di dati composito che ci consente di creare strutture di dati personalizzate per contenere informazioni correlate. Le strutture in Go sono come le classi nella programmazione orientata agli oggetti come C e C++, ma non supportano l'ereditarietà. Invece, si affidano alla composizione per ottenere il riutilizzo del codice. Questo articolo copre le strutture in Golang e come possiamo dichiarare e accedere ai membri struct.

Cos'è una struttura in Golang

In Golang, una struttura è un tipo di dati composito costituito da zero o più campi denominati, ognuno dei quali ha un tipo specifico. I campi di una struttura possono essere di qualsiasi tipo, incluse altre strutture, matrici, funzioni o interfacce.







Ecco un esempio di una struttura in Golang:



tipo Struttura persona {
Stringa FullName
Anni int
Indirizzo di posizione
}
tipo Struttura indirizzo {
StreetName  stringa
CityName    stringa
stringa CountryName
}


Qui abbiamo definito una struttura Person che ha tre campi: FullName, YearsOld e Location. Il campo Location è esso stesso una struttura che ha tre campi: StreetName, CityName e CountryName.



Come dichiarare Struct in Golang

Possiamo dichiarare una struttura in Golang usando il tipo parola chiave. Il nome della struttura è definito dopo il tipo parola chiave e i relativi campi sono racchiusi tra parentesi graffe { } . Ecco la sintassi per dichiarare una struttura in Go:





tipo StructName struct {
NomeCampo1 TipoCampo1
NomeCampo2 TipoCampo2
...
}


Di seguito è riportato un esempio di come dichiarare una struttura denominata Person con due campi name ed age rispettivamente dei tipi string e int:

tipo Struttura persona {
stringa del nome
età int
}


Nel codice sopra, abbiamo usato il tipo parola chiave per dichiarare una nuova struttura denominata Persona con due campi nome di tipo stringa e età di tipo int. I campi sono separati da a Nuova linea carattere ma a punto e virgola (;) può essere utilizzato anche per separarli.



Come accedere a Struct Member in Golang

Per accedere ai campi di un'istanza struct nel linguaggio Go punto ('.') viene utilizzato l'operatore Questo operatore punto è seguito da un nome di campo. Ecco un esempio di come accedere ai campi name ed age di un'istanza di Person struct:

// Crea un nuovo ` Persona ` struct istanza con nome 'cash' ed età 24
kash := Persona { nome: 'cash' , età: 24 }

// Accedi ai campi del ` kash ` struct istanza
fmt.Println ( nome.kash ) // Produzione: 'cash'
fmt.Println ( kash.age ) // Produzione: 24


Nel codice precedente, abbiamo creato una nuova istanza di Person struct denominata kash con il nome kash ed età 24 . Quindi accediamo ai campi name ed age dell'istanza di kash struct usando il file (“.”) operatore e stamparli sulla console.

È importante notare che si accede ai campi di un'istanza struct utilizzando la notazione punto e non la freccia notazione (->) utilizzato in alcuni altri linguaggi di programmazione. La notazione del punto viene utilizzata in modo coerente in Go per accedere ai campi degli struct, nonché alle proprietà e ai metodi di altri tipi.

Codice di esempio per la dichiarazione e l'accesso al membro Struct in Golang

Di seguito è riportato un esempio completo della dichiarazione della struttura Person in Go e della stampa dei suoi valori sullo schermo:

pacchetto principale
importare 'fmt'
tipo Struttura persona {
stringa del nome
età int
}
funzione principale ( ) {
// Crea un nuovo ` Persona ` struct istanza con nome 'cash' ed età 24
kash := Persona { nome: 'cash' , età: 24 }
// Stampa il ` nome ` E ` età ` Di ` kash ` struct alla console
fmt.Printf ( 'Nome: %s \N ' , kash.nome )
fmt.Printf ( 'Età: %d \N ' , kash.age )
}


Nel codice sopra scritto, abbiamo prima dichiarato il file Persona struct. Questa struttura contiene due campi che sono nome ed età. Successivamente, abbiamo creato una nuova istanza di Person struct denominata kash con il nome kash ed età 24 .

Per visualizzare i campi nome ed età, utilizziamo il fmt.Printf funzione con il %S E %D identificatori di formato per stampare rispettivamente i campi nome ed età.

Dopo l'esecuzione, sulla console viene visualizzato il codice che segue l'output:

Come passare Struct come argomenti di funzione

Per passare una struct come argomento di una funzione in Go, dobbiamo semplicemente specificare il tipo di struct come tipo di parametro nella firma della funzione, e poi passare l'istanza di struct come argomento quando chiamiamo la funzione.

Esempio Codice

L'esempio seguente mostra come passare un'istanza struct Person come argomento a una funzione in linguaggio Go e stamparne i valori sullo schermo:

pacchetto principale
importare 'fmt'
// Dichiarare una struttura denominata ` Persona ` con due campi: ` nome ` E ` età `
tipo Struttura persona {
stringa del nome
età int
}
// Dichiara un funzione di nome ` printPerson ` che richiede un ` Persona ` struct COME un argomento
func printPerson ( p Persona ) {
fmt.Printf ( 'Nome: %s \N ' , p.nome )
fmt.Printf ( 'Età: %d \N ' , pagina )
}
funzione principale ( ) {
// Crea un nuovo ` Persona ` struct istanza con nome 'cash' ed età 24
kash := Persona { nome: 'cash' , età: 24 }
// Passa il ` kash ` struct istanza al ` printPerson ` funzione
printPerson ( kash )
}


Nel codice sopra, abbiamo prima dichiarato la struttura Person con due campi, nome, E età . Dichiariamo quindi una funzione denominata printPerson che prende una struttura Person come argomento e ne stampa i campi nome ed età sullo schermo usando la funzione fmt.Printf.

Nella funzione principale, abbiamo creato una nuova istanza di Person struct denominata kash con il nome kash e 24 anni. Quindi passiamo l'istanza kash struct alla funzione printPerson chiamando la funzione printPerson e passando kash come argomento.

Il seguente output può essere visualizzato sulla console dopo aver eseguito il codice precedente:

Conclusione

In Golang, le strutture possono rappresentare tipi di dati complessi e incapsulare dati correlati. Una struttura è un tipo di dati costituito da uno o più campi, a ciascuno dei quali viene assegnato un nome e un tipo specifico. I campi di una struttura possono essere di qualsiasi tipo, incluse altre strutture, matrici, funzioni o interfacce. Questo articolo ha discusso in dettaglio le strutture Go, per maggiori informazioni sulla dichiarazione e l'accesso agli elementi struct leggi l'articolo.