Heim > Backend-Entwicklung > Golang > Wie übergebe ich in Go mehrere Rückgabewerte als Argumente an Funktionen?

Wie übergebe ich in Go mehrere Rückgabewerte als Argumente an Funktionen?

Mary-Kate Olsen
Freigeben: 2024-10-31 09:51:01
Original
298 Leute haben es durchsucht

How to Pass Multiple Return Values as Arguments to Functions in Go?

Rückgabewerte als Argumente für Funktionen mit mehreren Argumenten

Beim Umgang mit Funktionen, die mehrere Werte zurückgeben, ist es möglich, diese Werte als Eingabe zu verwenden Argumente für andere Funktionen. Es gelten jedoch bestimmte Einschränkungen, wenn die Empfangsfunktion über zusätzliche Parameter verfügt.

Betrachten Sie den folgenden Code:

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

func doSomething(msg string, i int, s string) {...}</code>
Nach dem Login kopieren

Wenn wir versuchen, die Rückgabewerte von returnIntAndString() direkt an doSomething() zu übergeben :

<code class="go">doSomething("message", returnIntAndString())</code>
Nach dem Login kopieren

Go wird sich mit den Fehlern beschweren:

multiple-value returnIntAndString() in single-value context
not enough arguments in call to doSomething()
Nach dem Login kopieren

Das liegt daran, dass Go nur zulässt Übergeben eines einzelnen Werts als Argument an eine Funktion, auch wenn der Rückgabewert der vorherigen Funktion mehrere Werte liefert.

Um dieses Problem zu beheben, haben Sie zwei Möglichkeiten:

  1. Rückgabewerte zuweisen:
    Weisen Sie die Rückgabewerte temporären Variablen zu und übergeben Sie sie einzeln an doSomething().

    <code class="go">i, s := returnIntAndString()
    doSomething("message", i, s)</code>
    Nach dem Login kopieren
  2. Spezifische Werte zurückgeben:
    Gibt in der Funktion returnIntAndString() eine benannte Struktur mit Feldern für jeden Wert zurück. Übergeben Sie dann die Struktur an doSomething().

    <code class="go">type Result struct {
       I int
       S string
    }
    
    func returnIntAndString() Result {...}
    
    res := returnIntAndString()
    doSomething("message", res.I, res.S)</code>
    Nach dem Login kopieren

Denken Sie daran, dass die spezifischen Regeln von Go beim Zuweisen von Argumenten keine zusätzlichen Parameter neben einer mehrwertigen Rückgabewertfunktion zulassen. Wenn die in der Sprachspezifikation aufgeführten spezifischen Bedingungen nicht erfüllt sind, müssen Sie eine der bereitgestellten Lösungen verwenden.

Das obige ist der detaillierte Inhalt vonWie übergebe ich in Go mehrere Rückgabewerte als Argumente an Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage