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

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

Patricia Arquette
Libérer: 2024-12-06 22:29:10
original
254 Les gens l'ont consulté

How to Encapsulate Private Fields and Methods in Go Structs?

Encapsuler des champs et des méthodes privés pour les structures dans Go

Dans Go, réaliser une véritable encapsulation des champs et des méthodes de structure est une question de compréhension règles de portée et de visibilité variables.

Par convention, un identifiant commençant par une majuscule est exporté et peut être accessible en dehors du package déclarant. À l'inverse, les identifiants minuscules ne sont accessibles que dans le package lui-même.

Pour privatiser à la fois la structure mytype et sa méthode doPrivate, les étapes suivantes doivent être suivies :

  1. Package séparé  : Créez un package séparé pour la structure mytype et ses méthodes associées. Cela garantit que seuls les membres du type mytype ont accès à ses champs et méthodes privés.
  2. Identifiant minuscule : renommez à la fois la structure mytype et la méthode doPrivate pour commencer par des lettres minuscules.

Le code résultant :

// Package mypkg defines the private mytype struct and its methods.
package mypkg

type mytype struct {
    size          string
    hash          uint32
}

// doPrivate can only be accessed by members of mytype.
func (r *mytype) doPrivate() string {
    return r.size
}
Copier après la connexion

Maintenant, seuls les membres de la structure mytype peut accéder à ses champs et méthodes privés. Les types ou fonctions externes au sein du package mypkg ne peuvent pas accéder directement à ces membres privés.

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