Maison >développement back-end >Golang >paramètres variables Golang

paramètres variables Golang

王林
王林original
2023-05-21 22:56:06675parcourir

Golang est un langage de programmation qui a fait l'objet de nombreuses discussions ces dernières années. Sa simplicité, son efficacité et sa prise en charge de la programmation simultanée en ont fait le choix de nombreux développeurs. Dans Golang, la fonction de paramètre variable est un modèle de programmation très important. Cet article expliquera en détail la fonction de paramètre variable de Golang.

1. La définition de la fonction de paramètre variable dans Golang

Dans Golang, la fonction de paramètre variable est également appelée fonction de paramètre variable, ce qui permet à la fonction d'accepter n'importe quel nombre de paramètres. . La fonction de paramètre variable de Golang est définie en ajoutant des points de suspension "..." devant le type de paramètre. Par exemple :

func funcName(args ...type) return_type {}

Dans la définition de fonction ci-dessus, le paramètre args est un paramètre indéfini et peut recevoir n'importe quel nombre de tapez les paramètres de type.

2. L'utilisation des fonctions à paramètres variables dans Golang

Dans Golang, l'utilisation des fonctions à paramètres variables est très flexible. Il peut être utilisé pour gérer des fonctions qui doivent recevoir un nombre quelconque de paramètres et peut également être utilisé pour étendre les fonctionnalités d'autres fonctions.

  1. Utiliser la fonction de paramètre variable pour recevoir plusieurs paramètres

Un scénario d'utilisation courant est qu'il n'est pas sûr du nombre de paramètres qui doivent être reçus lorsque la fonction est définie Lorsque , vous pouvez utiliser des fonctions à paramètres variables pour la gérer. Par exemple, la fonction suivante sum peut accepter n'importe quel nombre de paramètres de type int et renvoyer leur somme.

func sum(args ...int) int {

var total int
for _, v := range args {
    total += v
}
return total

}

Lorsque vous utilisez la fonction somme, vous pouvez transmettre n'importe quel nombre de paramètre de type int :

sum(1, 2, 3) // Retour : 6
sum(1, 2, 3, 4, 5) // Retour : 15

  1. Développer les fonctionnalités d'autres fonctions

Un autre scénario d'utilisation courant consiste à étendre les fonctionnalités de la fonction d'origine tout en conservant ses fonctionnalités. Par exemple, la fonction print suivante peut étendre la fonction d'impression de n'importe quelle fonction afin qu'elle imprime le nom de la fonction et le nombre total de paramètres avant d'imprimer les paramètres de la fonction.

func print(fn func(...interface{}) (int, erreur)) func(...interface{}) (int, erreur) {

return func(args ...interface{}) (int, error) {
    name := runtime.FuncForPC(reflect.ValueOf(fn).Pointer()).Name() // 获取函数名称
    fmt.Printf("Function %s got %d args: ", name, len(args)) // 打印函数名和参数个数
    return fn(args...)
}
#🎜🎜 #}

Lors de l'utilisation de la fonction print, il vous suffit de passer en paramètre la fonction qui doit être développée :

func hello(name string, age int) { #🎜🎜 #
fmt.Printf("Hello, my name is %s and I'm %d years old.", name, age)

}

print(hello)("John", 25)

// Sortie : La fonction main.hello a 2 arguments : Bonjour, je m'appelle John et moi avons 25 ans.


Dans l'exemple ci-dessus, la fonction d'impression reçoit une fonction de paramètre variable en tant que paramètre et renvoie une nouvelle fonction de paramètre variable pour étendre les fonctionnalités de la fonction d'origine.

3. Choses à noter sur les fonctions de paramètres variables dans Golang

Lorsque vous utilisez les fonctions de paramètres variables Golang, vous devez faire attention aux problèmes suivants :

#🎜 🎜## 🎜🎜#Il ne peut y avoir qu'un seul paramètre variable dans une fonction à paramètre variable

    Golang ne prend pas en charge les définitions de fonctions avec plusieurs paramètres variables. Par exemple, la fonction suivante provoquera un. erreur de compilation : #🎜🎜 #
  1. func test(a ...int, b ...string) {}

Le paramètre variable doit être le dernier paramètre du liste des paramètres de fonction

Lors de la définition d'une fonction, le paramètre variable doit être le dernier paramètre de la liste des paramètres. Par exemple, la définition de fonction suivante n'est pas valide :
    #🎜🎜. #func test(a ...int , b string) {}
Lorsque la fonction de paramètre variable reçoit des paramètres, le type de tranche ne peut pas être utilisé

# 🎜🎜#Dans la fonction de paramètre variable, les paramètres ne peuvent pas être utilisés Convertir directement en type de tranche. Si vous devez utiliser des slices, vous pouvez le faire en passant des paramètres à d'autres fonctions :

func sliceFunc(args ...int) {
    slice := make([]int, 0)
    for _, v := range args {
        slice = append(slice, v)
    }
    // 使用slice
  1. }
  2. #🎜🎜 #Ce qui précède est une explication détaillée de la fonction de paramètre variable de Golang. Grâce aux fonctions à argument variable, nous pouvons gérer un nombre incertain de paramètres de fonction de manière plus flexible et obtenir un code plus efficace et plus élégant.

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!

Déclaration:
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
Article précédent:basculement GolangArticle suivant:basculement Golang