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{}){ }
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...)
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...) }
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
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!