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.