Maison > développement back-end > Golang > Comment implémenter la surcharge de fonctions dans Golang ?

Comment implémenter la surcharge de fonctions dans Golang ?

WBOY
Libérer: 2024-04-29 17:21:01
original
586 Les gens l'ont consulté

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.

Comment implémenter la surcharge de fonctions dans Golang ?

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
}
Copier après la connexion

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
}
Copier après la connexion

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)
}
Copier après la connexion

Utilisez des génériques (>= Go 1.18)

func Length[T any](data T) int {
    return len(data)
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal