Je parcourais du code écrit dans le langage Go de Google, et je suis tombé sur ceci :
func Statusln(a ...interface{})
func Statusf(format string, a ...interface{})
Je ne comprends pas ce que le ...
signifie. Quelqu'un le sait-il ?
Je parcourais du code écrit dans le langage Go de Google, et je suis tombé sur ceci :
func Statusln(a ...interface{})
func Statusf(format string, a ...interface{})
Je ne comprends pas ce que le ...
signifie. Quelqu'un le sait-il ?
Cela signifie que vous pouvez appeler Statusln avec un nombre variable d'arguments . Par exemple, l'appel de cette fonction avec :
Statusln("hello", "world", 42)
Attribue au paramètre a la valeur suivante :
a := []interface{}{"hello", "world", 42}
Ainsi, vous pouvez itérer sur cette tranche a et traiter tous les paramètres, quel que soit leur nombre. Un bon cas d'utilisation populaire des arguments variables est par exemple fmt.Printf() qui prend une chaîne de format et un nombre variable d'arguments qui seront formatés selon la chaîne de format.
C'est un argument de longueur variable
func Printf(format string, v ...interface{}) (n int, err error) {
Prenez par exemple cette signature. Ici, nous définissons que nous avons une chaîne à imprimer, mais cette chaîne peut être interpolé avec un nombre variable de choses (de type arbitraire) à substimer (en fait, j'ai pris cette fonction du paquet fmt) :
fmt.Printf("just i: %v", i)
fmt.Printf("i: %v and j: %v",i,j)
Comme vous pouvez le voir ici, avec des arguments variadiques, une signature s'adapte à toutes les longueurs.
De plus, vous pouvez spécifier un type exact comme ...int
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.