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á.