Maison > développement back-end > Golang > Comment encapsuler des champs et des méthodes privés dans des structures Go ?

Comment encapsuler des champs et des méthodes privés dans des structures Go ?

Mary-Kate Olsen
Libérer: 2024-12-08 06:26:10
original
805 Les gens l'ont consulté

How to Encapsulate Private Fields and Methods in Go Structures?

Champs et méthodes privés pour une structure

Dans Go, lorsque vous travaillez avec des structures, il est parfois nécessaire d'avoir certains champs et méthodes comme privés, ce qui signifie que seuls les les membres de cette structure peuvent y accéder, tandis que d'autres types ou fonctions dans le cadre du package ne devraient pas y avoir accès.

Pour y parvenir, il est important de noter que dans Go, les identifiants commençant par des majuscules sont exportés du package et sont accessibles aux entités extérieures au package déclarant. A l'inverse, les identifiants commençant par des lettres minuscules ne sont accessibles qu'au sein du package lui-même.

Si le but est que les membres d'un type soient accessibles uniquement aux membres de ce type, il est nécessaire de placer ce type, ainsi que son fonctions membres, dans un package séparé, comme seul type dans ce package. Ce faisant, le type et ses membres seront privés pour ce package et ne seront pas accessibles de l'extérieur.

Voici comment modifier le code pour rendre la structure mytype et la méthode doPrivate privées :

// Define a separate package for mytype.
package mytypepkg

type mytype struct {
    size string
    hash uint32
}

func (r *mytype) doPrivate() string {
    return r.size
}
Copier après la connexion

Maintenant, mytype et doPrivate sont encapsulés dans leur propre package, ce qui les rend inaccessibles à partir d'autres types ou fonctions en dehors de ce package.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal