Sobes.tech
Junior — Middle

Come viene implementato il principio di incapsulamento dei dati nel linguaggio Go?

sobes.tech AI

Risposta dell'AI

In Go, l'incapsulamento si ottiene attraverso la regola di visibilità degli identificatori: se il nome di una variabile, funzione, metodo o campo di una struttura inizia con una lettera maiuscola, viene esportato e accessibile da altri pacchetti; se inizia con una lettera minuscola, è accessibile solo all'interno dello stesso pacchetto.

Per nascondere i dati, basta rendere i campi della struttura con una lettera minuscola e implementare metodi con una lettera maiuscola (getter e setter) per accedervi.

Esempio:

package user

type User struct {
    name string // campo privato
}

func NewUser(name string) *User {
    return &User{name: name}
}

func (u *User) GetName() string {
    return u.name
}

func (u *User) SetName(name string) {
    u.name = name
}
}

Qui, il campo name è nascosto dall'accesso esterno, e i metodi GetName e SetName forniscono un accesso controllato a esso.