Maison > développement back-end > Golang > le corps du texte

Comment transmettre plusieurs valeurs de retour comme arguments à une autre fonction dans Go ?

Linda Hamilton
Libérer: 2024-10-31 08:49:02
original
482 Les gens l'ont consulté

How to Pass Multiple Return Values as Arguments to Another Function in 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()
Copier après la connexion

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 :

  • Le nombre de valeurs de retour de la première fonction est égal au nombre de paramètres de la seconde function.
  • Les types des valeurs de retour sont attribuables aux types des paramètres.

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 :

  1. Envelopper le retour Valeurs dans une structure :

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>
Copier après la connexion
  1. Attribuez des valeurs de retour à des variables séparées :

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>
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!