Sobes.tech
Junior — Middle

Comment le principe d'encapsulation des données est-il réalisé dans le langage Go?

sobes.tech IA

Réponse de l'IA

En Go, l'encapsulation est réalisée par la règle de visibilité des identificateurs : si le nom d'une variable, fonction, méthode ou champ de structure commence par une majuscule, il est exporté et accessible depuis d'autres packages ; s'il commence par une minuscule, il n'est accessible qu'au sein du package actuel.

Ainsi, pour cacher des données, il suffit de faire en sorte que les champs de la structure commencent par une minuscule, et d'implémenter des méthodes avec une majuscule (getters et setters) pour y accéder.

Exemple :

package user

type User struct {
    name string // champ privé
}

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
}
}

Ici, le champ name est caché de l'accès externe, et les méthodes GetName et SetName offrent un accès contrôlé à celui-ci.