Maison  >  Article  >  développement back-end  >  Comment surcharger les méthodes golang ?

Comment surcharger les méthodes golang ?

王林
王林original
2024-04-27 18:06:01822parcourir

Go permet la surcharge de méthodes dans le même type via des ensembles de méthodes, c'est-à-dire la définition de plusieurs méthodes avec le même nom mais des paramètres différents. L'ensemble de méthodes doit être inclus dans l'interface, les noms de méthodes sont les mêmes, les types de paramètres sont différents et les types de valeurs de retour peuvent être identiques ou différents. Par exemple, le type Point peut surcharger la méthode Distance, une méthode qui accepte un autre paramètre Point et une autre qui n'accepte aucun paramètre.

如何重载 golang 方法?

Comment surcharger les méthodes Go ?

Présentation

Go ne prend pas en charge la surcharge de méthodes au sens traditionnel, c'est-à-dire la définition de méthodes avec le même nom mais des paramètres différents dans le même type. Cependant, Go propose une alternative appelée ensemble de méthodes, qui permet de définir plusieurs méthodes avec le même nom mais des paramètres différents.

Syntaxe

Pour surcharger les méthodes dans Go, vous pouvez utiliser la syntaxe suivante :

type TypeName interface {
    MethodName(param1Type param1Name, param2Type param2Name, ...)returnType
}

Exemple pratique

Considérons un exemple de la façon de surcharger Distance en type <code>Point code> méthode. Point 类型中重载 Distance 方法。

type Point struct {
    x, y float64
}

func (p Point) Distance(q Point) float64 {
    return math.Sqrt(math.Pow(p.x-q.x, 2) + math.Pow(p.y-q.y, 2))
}

func (p Point) DistanceToOrigin() float64 {
    return math.Sqrt(math.Pow(p.x, 2) + math.Pow(p.y, 2))
}

在上面示例中,Point 类型有两个 Distance 方法:一个采用另一个 Pointrrreee

Dans l'exemple ci-dessus, le type Point a deux méthodes Distance : une qui prend un autre paramètre Point et une qui ne prend aucun paramètre. . Le compilateur se différencie en fonction des types de paramètres des méthodes, nous pouvons donc utiliser le même nom pour les deux méthodes.

Notes
  • L'ensemble de méthodes doit être inclus dans l'interface.
  • Les noms des méthodes doivent être les mêmes.
  • Les types de paramètres de méthode doivent être différents.
  • Les types de valeurs de retour de méthode peuvent être identiques ou différents.
🎜

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