Ü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:
<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!