Junior — Middle
Comment le principe d'encapsulation est-il réalisé dans le langage Go à l'aide de structures?
sobes.tech IA
Réponse de l'IA
В Go инкапсуляция достигается с помощью правил видимости идентификаторов, основанных на регистре первой буквы имени:
- Имена, начинающиеся с заглавной буквы, экспортируются и доступны из других пакетов (public).
- Имена с маленькой буквы доступны только внутри пакета (private).
Таким образом, чтобы скрыть поля или методы структуры от внешнего доступа, их имена делают с маленькой буквы.
Пример:
package user
type User struct {
name string // приватное поле
Age int // публичное поле
}
func (u *User) GetName() string { // публичный метод
return u.name
}
В этом примере поле name скрыто от внешнего мира, а доступ к нему осуществляется через публичный метод GetName(). Это реализует инкапсуляцию, контролируя доступ к внутренним данным структуры.