Back to questions
Wildberries
СБЕР дейвайсы
Junior — Middle
100
Каким образом в языке Go реализуется принцип инкапсуляции данных?
Companies where asked
Betera Group
Российский центр оборота прав
Answer from AI
sobes.tech 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 предоставляют контролируемый доступ к нему.