Maison > développement back-end > Golang > Explication détaillée des paramètres indéfinis dans Golang

Explication détaillée des paramètres indéfinis dans Golang

王林
Libérer: 2019-12-07 09:21:06
original
3453 Les gens l'ont consulté

Explication détaillée des paramètres indéfinis dans Golang

Les paramètres indéfinis signifient que le nombre de paramètres transmis par la fonction est un nombre indéfini.

1. Définition de la fonction

Voyons d'abord comment définir une fonction avec des paramètres indéfinis :

func YourFun(v... interface{}){
}
Copier après la connexion

Cette définition de fonction définit une fonction qui accepte n'importe quel nombre de paramètres de n'importe quel type. La syntaxe spéciale ici est de trois points "...". Après avoir ajouté trois points après une variable, cela signifie que les paramètres indéfinis sont acceptés à partir de ce point. Contrairement à Python, si les paramètres indéfinis de Golang sont modifiés ici "interface{}" Remplacez-le. avec un certain type, il ne peut alors accepter que des paramètres variables de ce type.

2. "..."

Ci-dessus, nous voyons une marque spéciale avec trois points "...". Alors, que font ces trois points "..." ?

2.1 Paramètres indéfinis

Comme mentionné ci-dessus, lors de la définition d'un paramètre indéfini, cela signifie enregistrer les paramètres indéfinis à partir de ce paramètre

2.2 Déréférencement de tranche

Quand Lorsque vous souhaitez passer plusieurs valeurs à une fonction à paramètre variable, vous pouvez écrire manuellement chaque paramètre, ou vous pouvez passer une tranche à la fonction :

YourFunc (YourSlice...)
Copier après la connexion

Vous pouvez utiliser "..." pour correspondre aux paramètres de la tranche transmise à la fonction. Équivalent à "*args" en python.

Il convient de noter ici que le déréférencement de tranche ne peut actuellement être utilisé que lors du passage de paramètres dans des fonctions à paramètres variables. S'il est utilisé ailleurs, une erreur sera signalée.

3. Paramètres de traversée

Regardons un exemple :

func P (v... string) {
for _,item := range v {
    fmt.Println("item:",item)
    }
}
func main() {
    var l []string
    l = append(l,"a")
    l = append(l,"b")
    fmt.Println("l is ",l)
    P(l...)
}
Copier après la connexion

Le résultat que nous voyons ici est, d'abord une liste complète, puis chaque élément. :

l is  [a b]
item: a
item: b
Copier après la connexion

En utilisant for...range ensemble, vous pouvez parcourir chaque paramètre dans le paramètre indéfini v. Ici, nous définissons le type de paramètre variable sur chaîne, de sorte qu'il ne peut accepter qu'un certain nombre de paramètres de type chaîne.

Articles et tutoriels connexes recommandés : tutoriel golang

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal