Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> Domanda >> PC Risoluzione dei problemi >> .

Come utilizzare le strutture in Golang [Tutorial completo]

## Strutture

- Le strutture Golang ci consentono di raggruppare i dati insieme.

- Sono simili alle strutture di altri linguaggi di programmazione.

- Le strutture sono tipi di dati definiti dall'utente e consentono di creare tipi personalizzati.

- Le strutture possono contenere qualsiasi tipo di dati, comprese altre strutture.

Definizione della struttura:

"vai."

tipo nome_struttura struttura {

nome_membro tipo1

nome_membro tipo2

...

nome_membro tipoN

}

```

- Definisce una struttura denominata "nome_struttura" con membri "nome_membro". Ogni membro ha un tipo, che può essere qualsiasi tipo Go valido.

Creazione di strutture:

"vai."

var nome_struttura =tipo_struttura {

nome_membro1:valore1,

nome_membro2:valore2,

...

nome_membroN:valoreN

}

```

- Questo crea una variabile di tipo `structure_name` e inizializza i suoi membri con i valori specificati.

Accesso ai membri:

- Per accedere a un membro della struttura, utilizzare l'operatore punto:`nome_struttura.nome_membro`.

Esempio:

"vai."

// Definisce una struttura denominata persona con nome ed età dei membri.

tipo persona struttura {

Stringa del nome

Età int

}

funzione principale() {

// Crea una persona chiamata "John Doe".

persona1 :=persona{"John Doe", 30}

// Stampa il nome e l'età di John.

fmt.Println("Nome:", persona1.Nome)

fmt.Println("Età:", persona1.Età)

}

```

Strutture denominate:

- Se una struttura contiene campi con tipi di dati di base, può essere dichiarata senza una parola chiave struct.

"vai."

digitare MyStruct struttura {

un int

b float32

stringa c

}

digita la tua struttura {

f int 'json:"primo"'

l stringa 'json:"ultimo"'

}

```

- Sia per "MyStruct" che per "your struct" sopra, la parola chiave struct è facoltativa

Strutture anonime

- È possibile utilizzare strutture anonime per creare tipi di dati ad hoc senza definire esplicitamente un tipo di struttura.

- Quando una struttura anonima viene utilizzata come campo di un'altra struttura o come elemento di una porzione/mappa, il tipo del campo è la struttura anonima e il tag del campo è il nome del tipo.

"vai."

tipo Persona struttura {

stringa del nome

età int

}

```

- In alternativa, è possibile utilizzare strutture anonime per istanziare una struttura senza definire un tipo di struttura.

"vai."

var persona =struttura {

stringa del nome

età int

}{nome:"Bob", età:20}

```

- In questo caso, la variabile persona di tipo `struct{ nome stringa; age int }` viene creato e inizializzato.

Incorporamento di strutture

- Incorporare una struttura in un'altra struttura consente una forma di ereditarietà in Go.

"vai."

tipo Persona struttura {

stringa del nome

età int

}

tipo Dipendente struttura {

stipendio int

Persona

}

```

- Qui `Employee` incorpora `Person` quindi una variabile `Employee` includerà i campi di `Person` (nome ed età) così come i propri campi.

"vai."

emp :=Dipendente{stipendio:100000, Persona:Persona{nome:"John", età:30}}

fmt.Println(emp.stipendio) // 100000

fmt.Println(emp.name) // Giovanni

```

- I campi della struttura incorporata vengono promossi alla struttura esterna (contenente) come se fossero dichiarati nella struttura contenente. Qui è ora possibile accedere ai campi "name" e "age" di "Person" sulla variabile "Employee" (`emp`).

Tag nelle strutture

- È possibile allegare tag ai campi della struttura per fornire informazioni aggiuntive. Questi tag vengono utilizzati dalla riflessione e dai codificatori/decodificatori.

"vai."

tipo Persona struttura {

stringa del nome `json:"nome"` // tag json

età int `xml:"età"` // tag xml

}

```

- I tag sono racchiusi tra apici inversi ('`') se contengono spazi o altri caratteri speciali.

Conclusione

- Le strutture forniscono un modo per raggruppare insieme i dati correlati e creare tipi di dati personalizzati in Go.

- È possibile utilizzare strutture con nome e anonime a seconda della situazione e l'incorporamento consente una forma di ereditarietà.

- È possibile allegare tag ai campi della struttura per metadati aggiuntivi e compatibilità con le librerie standard.

 

Domanda © www.354353.com