Die Go-Sprache unterstützt keine herkömmliche Funktionsüberladung, aber ähnliche Effekte können erzielt werden durch: Verwendung benannter Funktionen: Erstellen eindeutiger Namen für Funktionen mit unterschiedlichen Parametern oder Rückgabetypen mithilfe von Generika (Go 1.18 und höher): Erstellen eindeutiger Namen für verschiedene Typen von Parametern Eine einzelne Version der Funktion.
Golang-Funktionsüberladungsimplementierung
In Golang wird Funktionsüberladung im herkömmlichen Sinne nicht unterstützt, d. h. derselbe Funktionsname hat mehrere Versionen mit unterschiedlichen Parameterlisten oder Rückgabetypen. Wir können jedoch etwas Ähnliches wie das Überladen von Funktionen erreichen, indem wir:
1 benannte Funktionen verwenden.
Wir können eindeutige Namen für Funktionen mit unterschiedlichen Parameterlisten oder Rückgabetypen erstellen, zum Beispiel:
func Sum(a, b int) int { return a + b } func SumFloat(a, b float64) float64 { return a + b }
2. >= Go 1.18)
Go 1.18 führte Generika ein, die es uns ermöglichen, zur Kompilierungszeit eine einzelne Version einer Funktion für verschiedene Arten von Argumenten zu erstellen. Zum Beispiel:
func Sum[T numeric](a, b T) T { return a + b }
Praktischer Fall
Angenommen, wir müssen zwei Funktionen zur Berechnung der Länge erstellen, eine Funktion wird zur Berechnung der Zeichenfolgenlänge und die andere Funktion zur Berechnung der Array-Länge verwendet.
Verwenden Sie benannte Funktionen
func StringLength(str string) int { return len(str) } func ArrayLength(arr []int) int { return len(arr) }
Verwenden Sie Generika (>= Go 1.18)
func Length[T any](data T) int { return len(data) }
Das obige ist der detaillierte Inhalt vonWie implementiert man eine Funktionsüberladung in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!