Maison > développement back-end > Golang > Les fonctions Go Variadic peuvent-elles mélanger des arguments et des tranches énumérés ?

Les fonctions Go Variadic peuvent-elles mélanger des arguments et des tranches énumérés ?

Susan Sarandon
Libérer: 2024-12-09 19:45:26
original
662 Les gens l'ont consulté

Can Go Variadic Functions Mix Enumerated Arguments and Slices?

Incompatibilités dans les arguments de fonction variadique

Dans Go, les arguments de fonction variadique fournissent un moyen pratique de spécifier des paramètres qui acceptent un nombre variable d'arguments. Cependant, il existe certaines restrictions lors du mélange de tranches « éclatées » avec des paramètres réguliers dans des fonctions variadiques.

La limitation sous-jacente est que les arguments variadiques doivent être soit explicitement énumérés, soit passés sous forme de tranche, mais pas les deux. Lorsqu'une tranche est utilisée (...stuff), elle est passée directement comme valeur du paramètre variadique sans créer de nouvelle tranche. En revanche, énumérer les éléments (ex. "bar", stuff...) entraîne la création d'une nouvelle tranche avec les arguments fournis.

Le compilateur interdit de mélanger ces deux formes car cela nécessiterait l'allocation d'une nouvelle tranche, ce qui n'est pas pris en charge par la spécification du langage Go. L'erreur "trop ​​d'arguments dans l'appel à foo" indique que la signature de la fonction attend un seul paramètre variadique, qui ne peut pas être satisfait à la fois par les éléments énumérés et par une tranche.

Cette limitation garantit que le paramètre variadique reçoit soit un tranche directement ou une tranche nouvellement créée avec les éléments énumérés. Cela évite toute confusion et incohérence potentielles dans la gestion des arguments variadiques.

Dans des langages comme Ruby, la syntaxe *foo permet l'expansion d'un tableau existant en un paramètre variadique. Cependant, en Go, cela n'est pas possible en raison de la séparation stricte entre les éléments énumérés et les tranches dans les arguments variadiques.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal