Le langage Go ne prend pas en charge la surcharge de fonctions traditionnelle, mais des effets similaires peuvent être obtenus en : utilisant des fonctions nommées : créant des noms uniques pour les fonctions avec différents paramètres ou types de retour en utilisant des génériques (Go 1.18 et supérieur) : créant des noms uniques pour différents types ; de paramètres Une version unique de la fonction.
Implémentation de la surcharge de fonction Golang
Dans Golang, la surcharge de fonction au sens traditionnel n'est pas prise en charge, c'est-à-dire que le même nom de fonction a plusieurs versions avec différentes listes de paramètres ou types de retour. Cependant, nous pouvons réaliser quelque chose de similaire à la surcharge de fonctions en :
1. En utilisant des fonctions nommées
Nous pouvons créer des noms uniques pour les fonctions avec différentes listes de paramètres ou types de retour, par exemple :
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 a introduit les génériques, nous permettant de créer une version unique d'une fonction au moment de la compilation pour différents types d'arguments. Par exemple :
func Sum[T numeric](a, b T) T { return a + b }
Cas pratique
Supposons que nous devions créer deux fonctions pour calculer la longueur, une fonction est utilisée pour calculer la longueur de la chaîne et l'autre fonction est utilisée pour calculer la longueur du tableau.
Utilisez les fonctions nommées
func StringLength(str string) int { return len(str) } func ArrayLength(arr []int) int { return len(arr) }
Utilisez des génériques (>= Go 1.18)
func Length[T any](data T) int { return len(data) }
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!