Junior — Middle
Cum se implementează principiul încapsulării datelor în limbajul Go?
sobes.tech AI
Răspuns de la AI
În Go, încapsularea se realizează prin regula de vizibilitate a identificatorilor: dacă numele unei variabile, funcții, metode sau câmp al unei structuri începe cu o literă majusculă, acesta este exportat și accesibil din alte pachete; dacă începe cu o literă minusculă, este accesibil doar în cadrul pachetului curent.
Astfel, pentru a ascunde datele, este suficient să faceți câmpurile structurii cu litere mici, iar pentru acces, să implementați metode cu litere mari (getters și setters).
Exemplu:
package user
type User struct {
name string // câmp privat
}
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
}
}
Aici, câmpul name este ascuns de accesul extern, iar metodele GetName și SetName oferă acces controlat la acesta.