Heim  >  Artikel  >  Backend-Entwicklung  >  Können in Go mehrere Rückgabewerte als Argumente an Funktionen mit unterschiedlicher Parameteranzahl übergeben werden?

Können in Go mehrere Rückgabewerte als Argumente an Funktionen mit unterschiedlicher Parameteranzahl übergeben werden?

Susan Sarandon
Susan SarandonOriginal
2024-10-31 11:20:29563Durchsuche

Can Multiple Return Values Be Passed as Arguments to Functions with Different Parameter Counts in Go?

Mehrere Rückgabewerte als Funktionsargumente in Go

In Go können Funktionen mehrere Werte zurückgeben, was für die Strukturierung und Wiederverwendung von Code hilfreich sein kann . Wenn es jedoch darum geht, diese Rückgabewerte als Argumente an eine andere Funktion zu übergeben, gelten bestimmte Einschränkungen.

Einschränkungen bei mehreren Rückgabewerten

Wenn Sie eine Funktion returnIntAndString( ), die zwei Werte (eine Ganzzahl und eine Zeichenfolge) zurückgibt, können Sie ohne Probleme eine andere Funktion doSomething(int, string) mit den Rückgabewerten aufrufen, wie zum Beispiel:

<code class="go">doSomething(returnIntAndString())</code>

Wenn Sie jedoch eine weitere Funktion hinzufügen Argument für doSomething(), beispielsweise eine Nachrichtenzeichenfolge, wird Go sich beschweren, wenn Sie es so aufrufen:

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

Der Kompilierungsfehler:

  • main.go:45: mehrwertige returnIntAndString() im Einzelwertkontext
  • main.go:45: nicht genügend Argumente im Aufruf von doSomething()

Problemumgehung

Die Go-Spezifikation erlaubt nicht die Übergabe mehrerer Rückgabewerte als Argumente an Funktionen mit zusätzlichen Parametern. Die innere Funktion muss genau die Anzahl an Werten zurückgeben, die für die Parameter der äußeren Funktion erforderlich sind. Wenn diese Bedingung nicht erfüllt ist, müssen Sie die Rückgabewerte Variablen zuweisen und die Funktion separat aufrufen, wie zum Beispiel:

<code class="go">code, str := returnIntAndString()
doSomething("message", code, str)</code>

Zusammenfassend lässt sich sagen, dass mehrere Rückgabewerte in Go zwar die Wiederverwendbarkeit von Code verbessern können, es gibt jedoch Einschränkungen wenn sie als Argumente an andere Funktionen mit unterschiedlicher Parameteranzahl übergeben werden. In diesem Fall sind eine manuelle Zuweisung und ein separater Funktionsaufruf erforderlich.

Das obige ist der detaillierte Inhalt vonKönnen in Go mehrere Rückgabewerte als Argumente an Funktionen mit unterschiedlicher Parameteranzahl übergeben werden?. 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