Maison >développement back-end >Golang >paramètres variables Golang
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.
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
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 variableLe 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 :slice := make([]int, 0) for _, v := range args { slice = append(slice, v) } // 使用slice
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!