Назад к вопросам
Junior — Middle
77
Как в языке Go обеспечивается инкапсуляция и скрытие внутреннего состояния данных?
Компании, где спрашивали
Betera Group
Ответ от нейросети
sobes.tech AI
В языке Go инкапсуляция и скрытие внутреннего состояния данных достигаются с помощью правила экспорта идентификаторов: если имя переменной, функции, метода или поля структуры начинается с заглавной буквы, оно экспортируется (доступно из других пакетов), если с маленькой — является приватным (доступно только внутри пакета).
Например:
package user
type User struct {
name string // приватное поле
Age int // экспортируемое поле
}
func NewUser(name string, age int) *User {
return &User{name: name, Age: age}
}
func (u *User) GetName() string {
return u.name
}
Здесь поле name скрыто от внешнего доступа, а доступ к нему можно получить через метод GetName(). Таким образом, Go использует уровень видимости на уровне пакетов и имен для инкапсуляции.