Sobes.tech
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.