Maison >développement back-end >Golang >Comment fonctionne l'interface `...interface{}` de Go (paramètre variadique) ?

Comment fonctionne l'interface `...interface{}` de Go (paramètre variadique) ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-20 08:59:11459parcourir

How Does Go's `...interface{}` (Variadic Parameter) Work?

Comprendre la signification de ...interface{} (interface Dot Dot Dot)

Dans Go, les fonctions variadiques sont un outil puissant pour gérer un nombre arbitraire d’arguments d’entrée. Une fonction avec un paramètre variadique, tel que :

func DPrintf(format string, a ...interface{}) (n int, err error)

vous permet de transmettre n'importe quel nombre d'arguments dans le paramètre a.

Dot Dot Dot Interface (paramètre variadique)

La notation ... utilisée avant un type de paramètre est appelée paramètre variadique. Cela indique que la fonction peut accepter un nombre variable d'arguments du type spécifié. Dans ce cas, le paramètre a attend des arguments de type interface{}.

Interface

Les types d'interface dans Go définissent un contrat pour un ensemble de méthodes qui ont une valeur donnée doit mettre en œuvre. Le type interface{} est une interface spéciale qui peut contenir des valeurs de n'importe quel type. Il agit comme un espace réservé, vous permettant de transmettre toute valeur Go valide dans le paramètre a.

Utilisation de ...l'interface{}

Les trois points .. . avant le type interface{}, indiquez que :

  1. Variadic : Le paramètre a peut accepter n'importe quel nombre de arguments.
  2. Tranche de valeurs d'interface : Les arguments transmis à la fonction sont stockés sous forme de tranche de valeurs d'interface{} dans le paramètre a.
  3. Illimité Type : Les arguments peuvent être de n'importe quel type implémentant l'interface interface{}, ce qui signifie essentiellement n'importe quel Go valeur.

Exemple

L'extrait de code suivant illustre le fonctionnement du paramètre ...interface{} :

func main() {
    n, err := DPrintf("name: %s, age: %d", "John", 30)
}

Dans Dans cet exemple, la fonction DPrintf est appelée avec deux arguments : une chaîne et un entier. Ces arguments sont regroupés dans une tranche de valeurs d'interface{} et transmis au paramètre a. La fonction peut ensuite accéder à ces valeurs en utilisant la syntaxe slice, telle que a[0] pour la chaîne et a[1] pour l'entier.

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!

Déclaration:
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