In Go Go, una struttura è una raccolta di variabili (campi) raggruppate con un singolo 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 classi nella programmazione orientata agli oggetti come C e C ++, ma non supportano l'eredità. Invece, si basano sulla composizione per ottenere il riutilizzo del codice. Questo articolo copre le strutture di Golang e come possiamo dichiarare e accedere ai membri della struttura.
Cos'è una struttura in Golang
In Golang, una struttura è un tipo di dati composito composto da zero o più campi nominati, ognuno dei quali ha un tipo specifico. I campi di una struttura possono essere di qualsiasi tipo, tra cui altre strutture, array, funzioni o interfacce.
Ecco un esempio di una struttura in Golang:
tipo persona struct
Stringa fullname
Yearsold Int
Indirizzo di posizione
tipo di indirizzo di tipo
String StreetName
CityName String
CountryName String
Qui abbiamo definito una struttura di persona che ha tre campi: fullname, yearsold e posizione. Il campo della posizione è esso stesso una struttura che ha tre campi: nome di strada, nome di città e nome country.
Come dichiarare struct in golang
Possiamo dichiarare una struttura in Golang usando il tipo parola chiave. Il nome della struttura è definito dopo tipo PAROLA CHIAVE e i suoi campi sono racchiusi in parenti ricci . Ecco la sintassi per dichiarare una struttura in Go:
Tipo structName struct
FieldName1 FieldType1
FieldName2 FieldType2
..
Di seguito è riportato un esempio di come dichiarare una struttura denominata con due campi Nome ed età dei tipi Stringa e intuitiva:
tipo persona struct
Nome String
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ò anche essere usato per separarli.
Come accedere al membro struct in Golang
Per accedere ai campi di un'istanza di struction in lingua GO punto (".") viene utilizzato l'operatore. Questo operatore DOT è seguito da un nome di campo. Ecco un esempio di come accedere al nome e ai campi di età di un'istanza di struction:
// crea una nuova istanza struggente "persona" con il nome "kash" e 24 anni
kash: = persona nome: "kash", età: 24
// Accedi ai campi dell'istanza della struttura "Kash"
fmt.Println (Kash.nome) // output: "kash"
fmt.Println (Kash.età) // output: 24
Nel codice sopra, abbiamo creato un'istanza struct di nuova persona denominata Kash con il nome Kash ed età 24. Accediamo quindi ai campi di nome e età dell'istanza di Kash Struct usando il (".") operatore e stampali sulla console.
È importante notare che i campi di un'istanza di struct sono accessibili utilizzando la notazione punto e non freccia notazione (->) usato in alcuni altri linguaggi di programmazione. La notazione del punto viene utilizzata in modo coerente attraverso GO per accedere ai campi delle strutture, nonché proprietà e metodi di altri tipi.
Esempio di codice di dichiarazione e accesso all'elemento struct in Golang
Di seguito è riportato un esempio completo di dichiarazione della persona struttura in GO e stampare i suoi valori sullo schermo:
Pacchetto principale
Importa "FMT"
tipo persona struct
Nome String
età int
func main ()
// crea una nuova istanza struggente "persona" con il nome "kash" e 24 anni
kash: = persona nome: "kash", età: 24
// Stampa l'istanza di "nome" e "età" di "Kash"
fmt.Printf ("Nome: %s \ n", Kash.nome)
fmt.Printf ("età: %d \ n", Kash.età)
Nel codice sopra scritto, abbiamo dichiarato per la prima volta il Persona strumento. Questa struttura contiene due campi che sono nome ed età. Successivamente, abbiamo creato un'istanza struct di nuova persona chiamata Kash con il nome Kash ed età 24.
Per visualizzare il nome e i campi di età, utilizziamo il fmt.Printf funzione con il %S E %D Specificatori di formato per stampare rispettivamente il nome e i campi di età.
Dopo l'esecuzione, il codice seguendo l'output viene visualizzato sulla console:
Come passare la struttura come argomenti della funzione
Per passare una struttura come argomento di funzione in GO, dobbiamo semplicemente specificare il tipo di strumento come tipo di parametro nella firma della funzione, quindi passare l'istanza struct come argomento quando si chiama la funzione.
Codice di esempio
L'esempio seguente mostra come passare un'istanza di struct di persona come argomento a una funzione nel linguaggio GO e stampare i suoi valori sullo schermo:
Pacchetto principale
Importa "FMT"
// dichiara una struttura denominata "persona" con due campi: "nome" e "età"
tipo persona struct
Nome String
età int
// dichiara una funzione denominata "printperson" che prende una struttura "persona" come argomento
Func PrintPerson (P Person)
fmt.Printf ("nome: %s \ n", p.nome)
fmt.Printf ("età: %d \ n", p.età)
func main ()
// crea una nuova istanza struggente "persona" con il nome "kash" e 24 anni
kash: = persona nome: "kash", età: 24
// Passa l'istanza della struttura "Kash" alla funzione "printperson"
PrintPerson (Kash)
Nel codice sopra, abbiamo prima dichiarato la struttura della persona con due campi, nome, E età. Dichiariamo quindi una funzione denominata Printperson Ciò prende una struttura di persona come argomento e stampando i campi di nome e età sullo schermo usando l'FMT.Funzione printf.
Nella funzione principale, abbiamo creato un'istanza struct di nuova persona denominata Kash con il nome Kash e 24 anni. Passiamo quindi l'istanza di Kash Struct alla funzione PrintPerson chiamando la funzione di stampa e passando Kash come argomento.
Il seguente output può essere visto sulla console dopo l'esecuzione del codice sopra:
Conclusione
In Golang, le strutture possono rappresentare tipi di dati complessi e incapsulare dati correlati. Una struttura è un tipo di dati composto da uno o più campi, ognuno dei quali viene assegnato un nome e un tipo specifici. I campi di una struttura possono essere di qualsiasi tipo, tra cui altre strutture, array, funzioni o interfacce. Questo articolo ha discusso in dettaglio GO Structures, per maggiori informazioni sulla dichiarazione e l'accesso agli elementi della struttura leggi l'articolo.