Junior — Middle
Чӣ гуна принсипи инкапсулятсияи додаҳо дар забони Go амалӣ мешавад?
sobes.tech AI
Ҷавоб аз AI
Дар Go, инкапсуляциясе идентификаторларның күренүчәнлек кагыйдәсе белән тәэмин ителә: әгәр үзгәрүчәннең, функциянең, ысулның яки структура кырларының исеме зур хәреф белән башланса, ул экспортлана һәм башка пакетлардан керү мөмкинлеге була; әгәр кечкенә хәреф белән башланса, ул бары тик хәзерге пакет эчендә генә керү мөмкинлеге була.
Мәгълүматларны яшерү өчен, структура кырларын кечкенә хәреф белән язу һәм аларга керү өчен зур хәреф белән методлар (геттерлар һәм сеттерлар) язу җитә.
Мисал:
package user
type User struct {
name string // шәхси кыр
}
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
}
}
Монда, name кыры тышкы керүдән яшерелгән, ә GetName һәм SetName методлары аңа контрольле керү мөмкинлеген бирә.