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.
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.
Pour surcharger les méthodes dans Go, vous pouvez utiliser la syntaxe suivante :
type TypeName interface { MethodName(param1Type param1Name, param2Type param2Name, ...)returnType }
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
方法:一个采用另一个 Point
rrreee
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. NotesCe 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!