Junior — Middle
Kaip įgyvendinamas duomenų inkapsuliacijos principas programavimo kalboje Go?
sobes.tech AI
Atsakymas iš AI
Go kalboje inkapsuliacija pasiekiama naudojant identifikatorių matomumo taisyklę: jei kintamojo, funkcijos, metodo ar struktūros lauko pavadinimas prasideda didžiąja raide, jis eksportuojamas ir prieinamas iš kitų paketų; jei mažąja raide, jis prieinamas tik dabartiniame pakete.
Kad paslėpti duomenis, pakanka, kad struktūros laukai prasidėtų mažąja raide, o prie jų prieigai įgyvendinti metodus su didžiąja raide (getterius ir setterius).
Pavyzdys:
package user
type User struct {
name string // privačias laukas
}
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
}
}
Čia laukas name yra paslėptas nuo išorės prieigos, o GetName ir SetName metodai suteikia kontroliuojamą prieigą prie jo.