Junior — Middle
Jak w języku Go realizowana jest zasada enkapsulacji danych?
sobes.tech AI
Odpowiedź od AI
W Go enkapsulacja osiągana jest za pomocą zasady widoczności identyfikatorów: jeśli nazwa zmiennej, funkcji, metody lub pola struktury zaczyna się od wielkiej litery, jest eksportowana i dostępna z innych pakietów; jeśli zaczyna się od małej litery, jest dostępna tylko w bieżącym pakiecie.
Aby ukryć dane, wystarczy, aby pola struktury zaczynały się od małej litery, a do uzyskania do nich dostępu zaimplementować metody z wielką literą (gettery i settery).
Przykład:
package user
type User struct {
name string // pole prywatne
}
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
}
}
Tutaj pole name jest ukryte przed dostępem z zewnątrz, a metody GetName i SetName zapewniają kontrolowany dostęp do niego.