Sobes.tech
Junior — Middle

Hogyan valósul meg az adatok kapszulációjának elve a Go nyelvben?

sobes.tech MI

Válasz az MI-től

A Go nyelvben az inkapszuláció azonosítók láthatósági szabályával érhető el: ha egy változó, függvény, metódus vagy szerkezet mező neve nagybetűvel kezdődik, akkor exportálva van és elérhető más csomagokból; ha kisbetűvel kezdődik, csak az aktuális csomagon belül érhető el.

Az adatok elrejtéséhez elegendő, ha a szerkezet mezői kisbetűsek, és nyilvános metódusokat (getterek és setterek) írunk hozzájuk nagybetűvel.

Példa:

package user

type User struct {
    name string // privát mező
}

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

Ebben a példában, a name mező el van rejtve a külső hozzáférés elől, és a GetName valamint a SetName metódusok kontrollált hozzáférést biztosítanak hozzá.