Go by Example - IT: Struct

In Go le structs sono collezioni di field (campi) a cui è associato un tipo. Sono utili per raccogliere insieme dati in modo da formare dei record

package main
import "fmt"

Questa struct person possiede due campi, rispettivamente name ed age.

type person struct {
    name string
    age  int
}
func main() {

Con questa sintassi si crea una nuova struct.

    fmt.Println(person{"Nicola", 20})

Puoi indicare il nome del campo quando crei una struct.

    fmt.Println(person{name: "Luigi", age: 30})

I field non indicati verrano inizializzati con il loro zero-value.

    fmt.Println(person{name: "Alessandro"})

Inserire un & a prefisso della dichiarazione permetterà di ottenere un puntatore alla struct

    fmt.Println(&person{name: "Luca", age: 40})

Puoi accedere ai campi della struct con l’operatore . (punto).

    s := person{name: "Mario", age: 50}
    fmt.Println(s.name)

Puoi utilizzare il punto anche per i puntatori a struct. Il puntatore verrà dereferenziato automaticamente.

    sp := &s
    fmt.Println(sp.age)

Le struct sono mutabili.

    sp.age = 51
    fmt.Println(sp.age)
}
$ go run structs.go
{Nicola 20}
{Luigi 30}
{Alessandro 0}
&{Luca 40}
Mario
50
51

Prossimo esempio: Metodi.