Maison  >  Article  >  développement back-end  >  Plusieurs valeurs de retour peuvent-elles être transmises comme arguments à des fonctions avec différents nombres de paramètres dans Go ?

Plusieurs valeurs de retour peuvent-elles être transmises comme arguments à des fonctions avec différents nombres de paramètres dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 11:20:29563parcourir

Can Multiple Return Values Be Passed as Arguments to Functions with Different Parameter Counts in Go?

Valeurs de retour multiples en tant qu'arguments de fonction dans Go

Dans Go, les fonctions peuvent renvoyer plusieurs valeurs, ce qui peut être bénéfique pour la structuration et la réutilisation du code . Cependant, lorsqu'il s'agit de transmettre ces valeurs de retour comme arguments à une autre fonction, certaines restrictions s'appliquent.

Limitations avec plusieurs valeurs de retour

Si vous avez une fonction returnIntAndString( ) qui renvoie deux valeurs (un entier et une chaîne), vous pouvez appeler une autre fonction doSomething(int, string) en utilisant les valeurs de retour sans aucun problème, comme :

<code class="go">doSomething(returnIntAndString())</code>

Cependant, si vous ajoutez un argument à doSomething(), comme une chaîne de message, Go se plaindra si vous l'appelez comme ceci :

<code class="go">doSomething("message", returnIntAndString())</code>

L'erreur de compilation :

  • main.go:45 : returnIntAndString() à valeurs multiples dans un contexte à valeur unique
  • main.go:45 : pas assez d'arguments dans l'appel à doSomething()

Solution de contournement

La spécification Go ne permet pas de transmettre plusieurs valeurs de retour comme arguments aux fonctions avec des paramètres supplémentaires. La fonction interne doit renvoyer le nombre exact de valeurs requises pour les paramètres de la fonction externe. Si cette condition n'est pas remplie, vous devez attribuer les valeurs de retour aux variables et appeler la fonction séparément, comme :

<code class="go">code, str := returnIntAndString()
doSomething("message", code, str)</code>

En conclusion, même si plusieurs valeurs de retour dans Go peuvent améliorer la réutilisabilité du code, il existe des limites en les passant comme arguments à d’autres fonctions avec un nombre de paramètres différent. Lorsque cela se produit, une affectation manuelle et un appel de fonction distinct sont nécessaires.

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