Maison > développement back-end > Golang > Comment transmettre plusieurs valeurs de retour d'une fonction à une autre en Go ?

Comment transmettre plusieurs valeurs de retour d'une fonction à une autre en Go ?

Susan Sarandon
Libérer: 2024-11-01 03:23:27
original
889 Les gens l'ont consulté

How to Pass Multiple Return Values from One Function to Another in Go?

Passer les valeurs de retour d'une fonction en tant qu'entrées à une autre fonction

Dans Go, vous pouvez facilement transmettre les valeurs de retour d'une fonction en tant qu'arguments d'entrée à une autre fonction. Par exemple :

<code class="go">func returnIntAndString() (i int, s string) {...}
func doSomething(i int, s string) {...}

doSomething(returnIntAndString())</code>
Copier après la connexion

Cependant, des complications surviennent lorsque vous ajoutez un argument supplémentaire à la deuxième fonction :

<code class="go">func doSomething(msg string, i int, s string) {...}
doSomething("message", returnIntAndString()) // Error</code>
Copier après la connexion

Le message d'erreur indique que vous ne pouvez pas transmettre plusieurs valeurs de retour à une fonction attend un seul argument.

Solution

Selon la spécification Go, une fonction ne peut transmettre ses valeurs de retour comme arguments d'entrée à une autre fonction que si cette dernière attend l'exact même nombre d'arguments. Il n'existe aucun mécanisme pour transmettre des paramètres supplémentaires dans ce scénario.

Par conséquent, pour résoudre le problème, vous avez deux options :

  1. Attribuer des valeurs de retour à des variables séparées : Attribuez les valeurs de retour de returnIntAndString() à des variables individuelles et transmettez-les comme arguments à doSomething().
  2. Utilisez une fonction qui accepte les arguments variadiques : Si vous devez transmettre des arguments supplémentaires , vous pouvez définir une fonction qui accepte les arguments variadiques, comme le montre l'exemple ci-dessous :
<code class="go">func doSomethingVariadic(msg string, args ...interface{}) {
  // Code to handle variable number of arguments
}</code>
Copier après la connexion

Vous pouvez ensuite appeler cette fonction avec les arguments souhaités, y compris les valeurs de retour de returnIntAndString() :

<code class="go">doSomethingVariadic("message", returnIntAndString())</code>
Copier après la connexion

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