Avatar ·

Dépaquetage d'une slice/tableau en arguments de fonction en Go : existe-t-il un équivalent de l'opérateur spread de JS/Python ?

Bonjour à tous. J'écris en Go depuis peu, je viens de Python et JavaScript. Là-bas, il était très pratique de passer un tableau ou une liste à une fonction qui accepte plusieurs arguments, en utilisant l'opérateur `*` (en Python) ou `...` (spread en JS). Par exemple, en Python je pouvais faire `my_func(*my_list)`. Maintenant en Go, j'ai une fonction qui accepte plusieurs arguments de type string : ```go func printNames(name1, name2, name3 string) { fmt.Println(name1, name2, name3) } ``` Et j'ai une slice de strings : ```go names := []string{"Alice", "Bob", "Charlie"} ``` Comment puis-je passer les éléments de cette slice à la fonction `printNames` comme des arguments séparés ? J'ai essayé d'écrire simplement `printNames(names...)`, mais le compilateur se plaint que je ne peux pas utiliser une slice avec `...` dans une fonction avec des paramètres fixes. J'ai essayé de dépaqueter explicitement avec `names[0], names[1], names[2]` — cela fonctionne, mais si j'ai 10 éléments, cela devient un cauchemar. Dites-moi, existe-t-il un moyen en Go de dépaqueter une slice ou un tableau en arguments de fonction ?