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 предоставят контролирана достъп до него.