Maison > Article > développement back-end > Comment transmettre plusieurs valeurs de retour comme arguments à une autre fonction dans Go ?
Comment utiliser les valeurs de retour d'une fonction comme arguments d'entrée pour une autre
Problème :
Considérez deux fonctions, returnIntAndString et doSomething. returnIntAndString renvoie deux valeurs, un entier et une chaîne, tandis que doSomething prend trois arguments : une chaîne, un entier et une autre chaîne.
Lors de l'appel de doSomething avec les valeurs de retour de returnIntAndString comme arguments, l'erreur suivante se produit :
main.go:45: multiple-value returnIntAndString() in single-value context main.go:45: not enough arguments in call to doSomething()
Réponse :
Selon la spécification Go, un appel de fonction peut lier les valeurs de retour d'une autre fonction aux paramètres de la fonction appelée uniquement si :
Dans ce cas, returnIntAndString renvoie deux valeurs, mais doSomething nécessite un troisième argument. Par conséquent, cette invocation directe n'est pas autorisée.
Alternatives :
Il existe deux solutions alternatives :
Créer une structure qui contient les valeurs de retour de returnIntAndString et transmettez une instance de cette structure à doSomething.
<code class="go">type ReturnValues struct { I int S string } func returnIntAndString() ReturnValues { return ReturnValues{42, "Hello"} } func doSomething(msg string, values ReturnValues) { // Use values.I and values.S as needed } doSomething("Message", returnIntAndString())</code>
Attribuez les valeurs de retour de returnIntAndString aux variables nommées et transmettez ces variables à doSomething.
<code class="go">var i, s = returnIntAndString() doSomething("Message", i, s)</code>
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!