Go ermöglicht das Überladen von Methoden desselben Typs durch Methodensätze, d. h. das Definieren mehrerer Methoden mit demselben Namen, aber unterschiedlichen Parametern. Der Methodensatz muss in der Schnittstelle enthalten sein, die Methodennamen sind gleich, die Parametertypen sind unterschiedlich und die Rückgabewerttypen können gleich oder unterschiedlich sein. Beispielsweise kann der Point-Typ die Distance-Methode überladen, eine Methode, die einen anderen Point-Parameter akzeptiert, und eine, die keine Parameter akzeptiert.
Go unterstützt keine Methodenüberladung im herkömmlichen Sinne, d. h. das Definieren von Methoden mit demselben Namen, aber unterschiedlichen Parametern im selben Typ. Go bietet jedoch eine Alternative namens Methodensatz an, mit der mehrere Methoden mit demselben Namen, aber unterschiedlichen Parametern definiert werden können.
Um Methoden in Go zu überladen, können Sie die folgende Syntax verwenden:
type TypeName interface { MethodName(param1Type param1Name, param2Type param2Name, ...)returnType }
Betrachten wir ein Beispiel für die Überladung von Abstand im Typ <code>Punkt
Code> Methode. 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
über zwei Distance
-Methoden: eine, die einen weiteren Point
-Parameter akzeptiert, und eine, die keine Parameter akzeptiert . Der Compiler unterscheidet anhand der Parametertypen von Methoden, sodass wir für beide Methoden denselben Namen verwenden können. HinweiseDas obige ist der detaillierte Inhalt vonWie kann man Golang-Methoden überladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!