Maison > développement back-end > Golang > méthodes golang non exportées

méthodes golang non exportées

王林
Libérer: 2023-05-10 12:44:07
original
553 Les gens l'ont consulté

Golang est un langage de programmation très populaire L'une de ses caractéristiques est qu'il prend en charge la programmation orientée objet. En programmation orientée objet, nous divisons généralement les méthodes en méthodes exportées et méthodes non exportées. Les méthodes exportées sont des méthodes qui peuvent être appelées et utilisées par du code en dehors du package, tandis que les méthodes non exportées ne peuvent être appelées que par du code dans le même package. Cet article se concentrera sur les méthodes non exportées dans Golang.

Dans Golang, nous définissons les méthodes non exportées en utilisant la première lettre du nom de la méthode en minuscule. Par exemple, ce qui suit est une méthode non exportée définie dans la structure Person :

type Person struct {
    name string
}

func (p Person) work() {
    fmt.Printf("%s is working.", p.name)
}
Copier après la connexion

Dans le code ci-dessus, nous définissons une méthode non exportée nommée work. Cette méthode ne peut être appelée que dans le même package car la première lettre de son nom de méthode est en minuscule. Dans cette méthode, nous pouvons utiliser la variable de structure p pour appeler l'attribut de nom de la personne, puis afficher que la personne travaille.

La différence entre les méthodes non exportées et les méthodes exportées est que la première lettre du nom de la méthode exportée est en majuscule, elle peut donc être utilisée par du code en dehors du package. Les méthodes non exportées sont généralement utilisées comme détails d'implémentation internes car elles ne peuvent pas être utilisées par du code en dehors du package, ce qui rend la logique du code plus claire et plus concise.

De plus, dans Golang, des méthodes non exportées peuvent également être utilisées pour masquer des données. Par exemple, nous pouvons définir une structure dont les variables privées ne sont accessibles qu'à l'intérieur de la structure. De cette façon, le code extérieur à la structure ne peut pas accéder directement à ces variables privées. Nous ne pouvons exploiter ces variables privées qu'en définissant des méthodes. Cette approche peut garantir davantage la sécurité et la maintenabilité du code.

type Person struct {
    name string
    age  int
}

func NewPerson(name string, age int) Person {
    return Person{name: name, age: age}
}

func (p Person) GetName() string {
    return p.name
}

func (p *Person) SetAge(age int) {
    p.age = age
}

func main() {
    person := NewPerson("Alice", 20)
    fmt.Printf("name: %s age: %d", person.GetName(), person.age)
    person.SetAge(21)
    fmt.Printf("name: %s age: %d", person.GetName(), person.age)
}
Copier après la connexion

Dans le code ci-dessus, nous définissons une structure Person, dans laquelle le nom et l'âge sont privés et ne sont donc pas accessibles directement. Nous exploitons ces deux variables privées en définissant les deux méthodes GetName et SetAge. De cette manière, nous pouvons masquer ces variables privées et assurer la maintenabilité et la sécurité du code.

En bref, les méthodes non exportées sont un concept très important chez Golang. Ils sont généralement utilisés comme détails d'implémentation internes ou pour masquer des données afin de garantir la logique et la maintenabilité du code. Que vous créiez de gros logiciels ou de petites applications, les méthodes sans exportation peuvent être très utiles.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal