GOlang struct

GOlang struct
In breve, una struttura o una struttura è una raccolta di campi con tipi di dati definiti. Le strutture sono molto utili e migliorano la flessibilità nei programmi. Le strutture sono probabilmente la soluzione migliore se hai dati che sono meglio rappresentati come unità. Pensalo come una versione leggera della programmazione orientata agli oggetti.

GO consente di creare e utilizzare strutture utilizzando tipi integrati o definiti dall'utente.

Questa guida faranno un viaggio ed esplorerà come funzionano le strutture nel linguaggio di programmazione Go.

Dichiarare una struttura

La sintassi seguente mostra come creare struct in go:

TypeStruct_namestruct
Field_1 Data_Type
field_2 data_type
..
field_ndata_type

Iniziamo chiamando la parola chiave del tipo. Dopo arriva il nome della struttura. Il nome della struttura può essere qualsiasi cosa definita dall'utente (purché segue le regole di denominazione in GO). Quindi utilizziamo la parola chiave struct, seguita da una coppia di bretelle.

All'interno delle parentesi graffe, definiamo vari campi che compongono la struttura. Il nome del campo è seguito dal suo tipo di dati.

Dichiarare struct - esempio

Il codice di esempio seguente definisce una struttura chiamata dipendente. Contiene 5 campi con vari tipi di dati.

typemployee struct
Nome String
Età int
BOOL in pensione
String del dipartimento
Stipendio Float64

Quanto sopra crea una struttura per i dipendenti contenenti campi di vari tipi.

Nota: se si desidera esportare la struttura e i suoi campi in altri pacchetti, assicurarsi che i nomi inizino con lettere maiuscole. Altrimenti, l'ambito è limitato a quel pacchetto.

Instanziazione della struttura

Definizione di una struttura significa che creiamo solo un progetto. Per creare un oggetto fuori dalla struttura, dobbiamo crearne un'istanza.

Per creare un'istanza di una classe in GO, inizia con la parola chiave VAR seguita dal nome dell'istanza.

L'esempio seguente crea un'istanza della struttura dei dipendenti.

Var Emp Employee

Una volta che creiamo un'istanza della struttura, possiamo accedere ai campi usando la notazione punto come mostrato:

Var Emp Employee
Emp.Name = "Thomas J"
Emp.Età = 35
Emp.In pensione = false
Emp.Dipartimento = "Devops Engineer"
Emp.Stipendio = 130000.50

Una volta impostati i campi di Instace, possiamo stamparlo come:

fmt.Println (emp)

Il ritorno di snippet sopra:

$ go run structs.andare
Thomas J 35 False Devops Engineer 130000.5

Instanziazione struct - Letterale

È inoltre possibile creare un'istanza di una struttura usando il metodo letterale della struttura. L'esempio seguente mostra la struttura letterale per creare un'istanza di una struttura.

var emp1 = dipendente "Mary A", 26, false, "Game Developer", 150000.10
fmt.Println (EMP1)

L'esempio sopra crea un'istanza della classe e imposta i campi senza usare la notazione dot.

Struttura istanziazione - Nuova parola chiave

Se non si desidera impostare i valori durante la creazione di istanza, è possibile utilizzare la nuova parola chiave. Per esempio:

var emp2 = new (dipendente)

Una volta creati, possiamo accedere ai campi di istanza e impostare i valori come:

EMP2.Name = "Judy L"
EMP2.Età = 60
EMP2.In pensione = vero
EMP2.Dipartimento = "Risorse umane"
EMP2.Stipendio = 119000.99

Accedi a campi struct

Per accedere ai campi di una struttura, vai a fornirci l'operatore DOT. Iniziamo con il nome dell'istanza della struttura e quindi il nome del campo.

Ad esempio, per ottenere il nome dell'EMP2, possiamo fare:

fmt.Println (EMP2.Nome)

Questo dovrebbe restituire il valore memorizzato dal campo specificato.

Metodi di struttura

Possiamo anche aggiungere un metodo a una struttura usando il ricevitore del metodo. Considera l'esempio seguente che crea un metodo per la struttura dei dipendenti.

func (e dipendente) info () string
fmt.Printf ("Nome: %s \ n età: %d \ n in pensione: %t \ n dipartimento: %s \ n stipendio: %f \ n", e.Nome, e.Età, e.In pensione, e.Dipartimento, e.Stipendio)
ritorno "fatto"

Una volta dichiarato il metodo, possiamo creare un'istanza e impostare i campi come:

Var E dipendente
e.Name = "Thomas J"
e.Età = 35
e.In pensione = false
e.Dipartimento = "Devops Engineer"
e.Stipendio = 130000.50

Infine, possiamo chiamare il metodo come:

fmt.Println (e.Informazioni())

Sulla chiamata del metodo, dovremmo ottenere un output come:

Nome: Thomas J
Età: 35
In pensione: falso
Dipartimento: ingegnere DevOps
Stipendio: 130000.500000
Fatto

Tipo di campo struct

Puoi scoprire il tipo di campo utilizzando il pacchetto Reflect. Ad esempio, per ottenere il tipo di campo in pensione, possiamo fare:

fmt.Println (riflette.Typeof (e.Pensionato))

Il codice sopra restituisce il tipo di campo come:

::produzione
bool

Confronto struct

È possibile verificare se una struttura è uguale a un'altra utilizzando l'operatore di confronto. Si noti che una struttura è definita come uguale se tutti i campi hanno lo stesso valore.

Nota: non tutti i tipi di dati sono comparabili.

L'esempio seguente crea due strutture e le confronta usando l'operatore ==.

..
Var E dipendente
e.Name = "Thomas J"
e.Età = 35
e.In pensione = false
e.Dipartimento = "Devops Engineer"
e.Stipendio = 130000.50
var emp2 = new (dipendente)
EMP2.Name = "Judy L"
EMP2.Età = 60
EMP2.In pensione = vero
EMP2.Dipartimento = "Risorse umane"
EMP2.Stipendio = 119000.99
if e == *emp2
fmt.Println ("le strutture sono uguali")
altro
fmt.Println ("strutture non uguali")

..

Poiché le strutture non sono uguali, il blocco altro viene eseguito.

SUGGERIMENTO: I valori vuoti e zero sono considerati uguali.

Conclusione

Uff!

Questo è stato un tutorial eccezionale sul lavoro con le strutture di Go Lang. Questo tutorial, tuttavia, copre solo le basi. Ci sono molte più operazioni che puoi fare con le strutture.

Continua a praticare e controlla i nostri tutorial Go per saperne di più.