Maison >développement back-end >Golang >ensemble de méthodes golang

ensemble de méthodes golang

WBOY
WBOYoriginal
2023-05-09 21:32:06720parcourir

Golang est un langage de programmation simple et puissant qui fournit un ensemble de méthodes riches pour faire fonctionner les objets. Un ensemble de méthodes est un ensemble de méthodes qui peuvent être appelées sur une valeur d'un type spécifique.

L'ensemble de méthodes de Golang se compose des types suivants :

  1. Ensemble de méthodes de type valeur

L'ensemble de méthodes de type valeur représente la collection de méthodes pour toutes les valeurs appartenant à ce type. Les types de valeur incluent les types de base (int, float, string, etc.) et les types personnalisés (struct, array, slice, map, etc.). En prenant struct comme exemple, tous les champs de la structure seront inclus dans l'ensemble de méthodes de type valeur. Lorsqu'une méthode est appelée sur une structure, une copie de cette valeur est créée et exploitée.

Voici un exemple :

type Person struct {
    Name string
    Age int
}

func (p Person) SayHello() {
    fmt.Println("Hello, my name is", p.Name, "and I am", p.Age, "years old.")
}

func main() {
    p := Person{Name: "John", Age: 30}
    p.SayHello() // 输出:Hello, my name is John and I am 30 years old.
}
  1. Ensemble de méthodes de type pointeur

L'ensemble de méthodes de type pointeur représente la collection de toutes les méthodes appartenant aux pointeurs de ce type. Contrairement aux types valeur, les types pointeur incluent toutes les méthodes dotées de récepteurs de pointeur. La fonction de l'ensemble de méthodes de type pointeur est d'opérer sur l'objet d'origine.

Ce qui suit est un exemple :

type Rect struct {
    Width int
    Height int
}

func (r *Rect) Area() int {
    return r.Width * r.Height
}

func main() {
    r := &Rect{Width: 10, Height: 5}
    fmt.Println(r.Area()) // 输出:50
}
  1. Combinaison d'ensembles de méthodes de type valeur et de type pointeur

Lorsqu'un type a à la fois un ensemble de méthodes de type valeur et un ensemble de méthodes de type pointeur, il a deux ensembles de méthodes différents. Ce type est souvent appelé type récepteur. Étant donné que ce type prend en charge à la fois les récepteurs de valeur et de pointeur, il peut être appelé soit sur une valeur, soit sur un pointeur.

Voici un exemple :

type Counter struct {
    Value int
}

func (c Counter) Increment() {
    c.Value++
}

func (c *Counter) Decrement() {
    c.Value--
}

func main() {
    c1 := Counter{Value: 0}
    c1.Increment()
    fmt.Println(c1.Value) // 输出:0

    c2 := &Counter{Value: 0}
    c2.Decrement()
    fmt.Println(c2.Value) // 输出:-1
}

Dans l'exemple ci-dessus, vous pouvez ajouter une méthode d'incrémentation via un récepteur de type valeur et une méthode de décrémentation via un récepteur de type pointeur. Lorsque la méthode d'incrémentation est appelée sur une valeur, seule la copie de la variable est modifiée, pas la variable d'origine. Lorsque la méthode de décrémentation est appelée sur un pointeur, la variable d'origine sera modifiée.

Dans l’ensemble, l’ensemble de méthodes de Golang fournit un moyen simple mais puissant de gérer les objets. Il rend les opérations sur les objets plus faciles et plus intuitives, et évite efficacement la duplication de code. Pour les débutants, il est très important de comprendre les idées derrière les ensembles de méthodes, ce qui aidera à mieux comprendre les principes de base du langage de programmation Golang.

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