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