Maison >développement back-end >Golang >Explication détaillée des méthodes golang

Explication détaillée des méthodes golang

PHPz
PHPzoriginal
2023-04-25 15:11:19707parcourir

Le langage Go (Golang), en tant que langage de programmation émergent hautes performances, a reçu de plus en plus d'attention et de soutien dans le domaine du développement ces dernières années. Parmi elles, la méthode Go est une fonctionnalité importante du langage Go. Elle fournit non seulement un moyen plus pratique d'organiser le code, mais permet également une meilleure réutilisation et maintenance du code. Ce qui suit présentera respectivement les concepts, les types, les définitions et l'utilisation des méthodes Go.

1. La notion de méthode

En langage Go, une méthode est une fonction associée à un type spécifique, qui peut être appelée sur ce type. Les méthodes sont généralement définies avec un paramètre récepteur, où le paramètre récepteur représente le type sur lequel la méthode est appelée. Grâce au paramètre récepteur, la méthode peut accéder à toutes les propriétés et méthodes du type pour implémenter la fonction d'opération sur les données.

Par exemple, pour une structure de type Person, vous pouvez définir une méthode SayHello, qui renvoie un type chaîne :

type Person struct {

name string
age  int

}

func (p Person) SayHello() string {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."

}

Dans le code ci-dessus, la méthode SayHello définit un destinataire p Person, utilise les attributs nom et âge du destinataire dans la méthode, et renvoie enfin un message d'accueil de type chaîne. Une fois cette méthode définie, elle peut être appelée via une instance du type Person.

2. Types de méthodes

Les méthodes Go peuvent être divisées en deux types : les récepteurs de valeurs et les récepteurs de pointeurs.

Le récepteur de type valeur (c'est-à-dire la copie de la valeur de l'instance) est généralement utilisé dans les scénarios où l'état interne de l'instance n'a pas besoin d'être modifié. Il est défini comme :

func (p Person) SayHello() string {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."
.

}

Type de pointeur Le récepteur (c'est-à-dire le pointeur de l'instance) est généralement utilisé dans les scénarios où l'état interne de l'instance doit être modifié comme suit :

func (p *Person) IncreaseAge(. ) {

p.age++

}

Dans le code ci-dessus, la méthode IncreaseAge est définie. Un récepteur p Person est créé, et l'attribut age du récepteur est modifié dans la méthode. Notez que le récepteur de type pointeur peut recevoir un pointeur vers le type ou un type qui nécessite une adresse. La déclaration de méthode sous cette forme nécessite "" avant le nom du type. Le "*" signifie ici le type du pointeur.

3. Définition des méthodes

Il existe deux façons de définir les méthodes Go L'une consiste à définir la méthode lorsque le type est déclaré, et l'autre consiste à définir une méthode via une fonction en dehors du type.

La façon de définir la méthode au moment de la déclaration de type est la suivante :

type Person struct {

name string
age  int

}

func (p Person) SayHello() string {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."

}

Dans le code ci-dessus , la méthode SayHello est définie dans Person au sein du type.

La façon de définir des méthodes via des fonctions extérieures au type est la suivante :

type Person struct {

name string
age  int

}

func (p Person) SayHello() string {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."

}

func (p *Person) IncreaseAge() {

p.age++

}

Dans le code ci-dessus, la méthode IncreaseAge est définie via une fonction et ajoutée en dehors du type Person.

4. Utilisation des méthodes

Les méthodes sont utilisées de la même manière que les autres fonctions et peuvent être appelées des deux manières suivantes :

1.

p := Person{name: "Tom", age: 18}
p.SayHello() // Bonjour, je m'appelle Tom, j'ai 18 ans.

2.

pp := &Person{name: "Jack", age: 20}
pp.IncreaseAge() // Modifier l'attribut age de pp, à ce moment pp.age=21.

Ce qui précède est une introduction détaillée aux méthodes Go. Pour les développeurs qui développent à l'aide de Go, que ce soit via des structures ou des types d'interface, l'application des méthodes Go peut mieux réaliser la réutilisation et la maintenance du code.

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!

Déclaration:
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