Sobes.tech
Junior — Middle

Jak je v jazyce Go realizováno pravidlo zapouzdření dat?

sobes.tech AI

Odpověď od AI

V jazyce Go je zapouzdření dosaženo pomocí pravidla viditelnosti identifikátorů: pokud název proměnné, funkce, metody nebo pole struktury začíná velkým písmenem, je exportován a je dostupný z jiných balíčků; pokud začíná malým písmenem, je dostupný pouze uvnitř aktuálního balíčku.

Pro skrytí dat stačí, aby pole struktury začínala malým písmenem, a pro přístup k nim implementovat metody s velkým písmenem (gettery a settery).

Příklad:

package user

type User struct {
    name string // soukromé pole
}

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
}
}

Zde je pole name skryto před vnějším přístupem, a metody GetName a SetName poskytují kontrolovaný přístup k němu.