Fonctions variadiques
Accepter un nombre variable d’arguments
Fonctions variadiques est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.
Qu’est-ce qu’une fonction variadique ?
Une fonction variadique accepte zéro ou plusieurs arguments d’un type donné, regroupés dans une tranche :
func sum(nums ...int) int {
total := 0
for _, n := range nums {
total += n
}
return total
}
fmt.Println(sum(1, 2, 3, 4)) // 10La syntaxe ...T
Utilisez ...T comme type du dernier paramètre. À l’intérieur de la fonction, il s’agit d’un []T :
- La fonction peut être appelée avec zéro argument ou davantage
- Le paramètre variadique doit être le dernier
- Une seule fonction variadique est autorisée par fonction
Déployer une tranche
Passez une tranche existante à une fonction variadique au moyen de l’opérateur de déploiement ... :
nums := []int{1, 2, 3, 4, 5}
total := sum(nums...) // spread the slice
fmt.Println(total) // 15fmt.Println est variadique
De nombreuses fonctions de la bibliothèque standard sont variadiques. fmt.Println possède la signature func Println(a ...interface{}) (n int, err error) — elle accepte un nombre quelconque de valeurs, de n’importe quel type.
append est variadique
La fonction intégrée append est variadique :
a := []int{1, 2, 3}
b := []int{4, 5, 6}
a = append(a, b...) // append all of b into a
fmt.Println(a) // [1 2 3 4 5 6]Paramètres fixes et variadiques
Les paramètres variadiques viennent en dernier. Mélangez paramètres fixes et variadiques :
func logf(level string, msg string, args ...interface{}) {
fmt.Printf("[%s] "+msg+"\n", append([]interface{}{level}, args...)...)
}Appel variadique vide
Une fonction variadique peut être appelée sans arguments — la tranche sera nil (ou vide) :
fmt.Println(sum()) // 0 — nil slice, loop runs 0 timesParamètre variadique ou paramètre de tranche
Quand utiliser une fonction variadique plutôt qu’un paramètre de tranche :
- Variadique : lorsque les appelants fournissent des valeurs individuelles directement (par exemple,
sum(1,2,3)) - Tranche : lorsque les appelants disposent toujours d’une collection préconstruite
- Le variadique est plus pratique au point d’appel ; les deux fonctionnent aussi bien en interne
Transmettre un variadique à un autre variadique
Transmettez les arguments variadiques au moyen de l’opérateur de déploiement :
func logError(args ...interface{}) {
log.Println(args...) // forward to log.Println
}Construire des modèles d’options
La forme variadique ...Option est un modèle courant pour la configuration facultative (options fonctionnelles) :
type Option func(*Server)
func NewServer(addr string, opts ...Option) *Server {
s := &Server{addr: addr}
for _, o := range opts {
o(s)
}
return s
}Vérification rapide
Comment passer une tranche à une fonction variadique ?
Récapitulatif : fonctions variadiques
Les fonctions variadiques rendent les points d’appel clairs :
...Tregroupe les arguments finaux dans un[]Tà l’intérieur de la fonction- Appelez la fonction avec des valeurs individuelles ou déployez une tranche avec
slice... - Les fonctions intégrées comme
appendetfmt.Printlnsont variadiques - Un seul paramètre variadique est autorisé, et il doit être le dernier
- Utilisez le modèle des options fonctionnelles pour une conception d’API expressive
Ensuite : defer, les fonctions anonymes et les fermetures.
Questions Fréquemment Posées
La leçon « Fonctions variadiques » est-elle gratuite ?
Oui — le texte complet de « Fonctions variadiques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions variadiques » ?
Accepter un nombre variable d’arguments Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Go Academy ?
Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Fonctions variadiques » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?
Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bases des fonctions et signatures
- Valeurs de retour multiples
- Fonctions variadiques
- defer, fonctions anonymes et fermetures