Maison > développement back-end > Golang > Que signifie `...interface{}` dans les fonctions Go Variadic ?

Que signifie `...interface{}` dans les fonctions Go Variadic ?

Patricia Arquette
Libérer: 2024-12-21 02:11:11
original
563 Les gens l'ont consulté

What Does `...interface{}` Mean in Go Variadic Functions?

Comprendre la signification de ...interface{} dans Go

Dans Go, un type de paramètre préfixé par trois points (... ) est connu sous le nom de paramètre variadique. Cela signifie qu'une fonction peut accepter n'importe quel nombre d'arguments pour ce paramètre particulier.

Considérez la fonction suivante :

func DPrintf(format string, a ...interface{}) (n int, err error) {
  if Debug > 0 {
    n, err = fmt.Printf(format, a...)
  }
  return
}
Copier après la connexion

Le paramètre a est de type ...interface{}, indiquant qu'il peut accepter zéro ou plusieurs arguments de n'importe quel type. Ces arguments sont ensuite reçus par la fonction sous la forme d'une tranche du type déclaré pour le paramètre, qui dans ce cas est []interface{}.

La spécification Go fournit l'explication suivante :

"Le paramètre final dans une signature de fonction peut avoir un type préfixé par .... Une fonction avec un tel paramètre est appelée variadique et peut être invoquée avec zéro ou plusieurs arguments pour ce paramètre."

Par conséquent, un paramètre de type ...interface{} est équivalent à un paramètre de type []interface{} au sein de la fonction. La différence réside dans la manière dont les arguments sont transmis à la fonction. Ils peuvent être transmis individuellement ou en une seule tranche, auquel cas la valeur de la tranche doit être suffixée par les trois points (...).

Par exemple, les deux appels suivants à la fonction fmt.Println produira le même résultat :

fmt.Println("First", "Second", "Third")
Copier après la connexion
s := []interface{}{"First", "Second", "Third"}
fmt.Println(s...)
Copier après la connexion

Dans les deux cas, la tranche s est passée à la fonction Println avec les trois points, indiquant qu'elle doit être traitée comme une argument variadique.

Ce mécanisme offre de la flexibilité en permettant aux fonctions d'accepter un nombre variable d'arguments, les rendant plus polyvalents et réutilisables.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal