0Pricing
Go Academy · Leçon

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)) // 10

La 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)     // 15

fmt.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 times

Paramè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 :

  • ...T regroupe 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 append et fmt.Println sont 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

  1. Bases des fonctions et signatures
  2. Valeurs de retour multiples
  3. Fonctions variadiques
  4. defer, fonctions anonymes et fermetures
← Retour à Go Academy