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