Heim  >  Artikel  >  Backend-Entwicklung  >  Wie übergebe ich in Go mehrere Rückgabewerte von einer Funktion an eine andere?

Wie übergebe ich in Go mehrere Rückgabewerte von einer Funktion an eine andere?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 03:23:27793Durchsuche

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

Übergabe von Funktionsrückgabewerten als Eingaben an eine andere Funktion

In Go können Sie die Rückgabewerte einer Funktion bequem als Eingabeargumente an übergeben eine weitere Funktion. Zum Beispiel:

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

doSomething(returnIntAndString())</code>

Es treten jedoch Komplikationen auf, wenn Sie der zweiten Funktion ein zusätzliches Argument hinzufügen:

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

Die Fehlermeldung weist darauf hin, dass Sie nicht mehrere Rückgabewerte an eine Funktion übergeben können erwartet ein einzelnes Argument.

Lösung

Gemäß der Go-Spezifikation kann eine Funktion ihre Rückgabewerte nur dann als Eingabeargumente an eine andere Funktion übergeben, wenn diese genau das erwartet gleiche Anzahl von Argumenten. In diesem Szenario gibt es keinen Mechanismus zum Übergeben zusätzlicher Parameter.

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

  1. Rückgabewerte separaten Variablen zuweisen: Weisen Sie die Rückgabewerte von returnIntAndString() einzelnen Variablen zu und übergeben Sie sie als Argumente an doSomething().
  2. Verwenden Sie eine Funktion, die variadische Argumente akzeptiert: Wenn Sie zusätzliche Argumente übergeben müssen können Sie eine Funktion definieren, die verschiedene Argumente akzeptiert, wie im folgenden Beispiel gezeigt:
<code class="go">func doSomethingVariadic(msg string, args ...interface{}) {
  // Code to handle variable number of arguments
}</code>

Sie können diese Funktion dann mit den gewünschten Argumenten aufrufen, einschließlich der Rückgabewerte von returnIntAndString():

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

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

Stellungnahme:
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