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

Susan Sarandon
Freigeben: 2024-11-01 03:23:27
Original
793 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!