Heim > Backend-Entwicklung > Golang > Wie verwende ich Funktionsaufrufe in den bedingten Anweisungen von Go richtig?

Wie verwende ich Funktionsaufrufe in den bedingten Anweisungen von Go richtig?

Mary-Kate Olsen
Freigeben: 2025-01-03 00:13:38
Original
537 Leute haben es durchsucht

How Do I Correctly Use Function Calls in Go's Conditional Statements?

Funktionsauswertung in bedingten Anweisungen

Bedingte Anweisungen erfordern oft die Auswertung von Funktionen innerhalb ihrer Bedingungen. Die Programmiersprache Go stellt jedoch bestimmte Anforderungen, wenn versucht wird, Funktionsaufrufe als Werte in solchen Anweisungen zu verwenden. Um dies besser zu verstehen, betrachten Sie das folgende Beispiel:

package main

import "fmt"

func main() {
    if sumThis(1, 2) > sumThis(3, 4) {
        fmt.Println("test")
    } else {
        fmt.Println("derp")
    }
}

func sumThis(a, b int) {
    return a + b
}
Nach dem Login kopieren

Dieses Codefragment versucht, die Ergebnisse zweier Funktionsaufrufe innerhalb einer bedingten Anweisung zu vergleichen. Die Kompilierung schlägt jedoch fehl und erzeugt den folgenden Fehler:

./test4.go:4: sumThis(1, 2) used as value
./test4.go:4: sumThis(3, 4) used as value
./test4.go:11: too many arguments to return
Nach dem Login kopieren

Der Fehler ist auf das Fehlen eines Rückgabetyps für die sumThis-Funktion zurückzuführen. Durch Weglassen des Rückgabetyps interpretiert Go die Funktion als Rückgabe von void. Wenn Sie dann versuchen, die Funktionsaufrufe als Werte in der bedingten Anweisung zu verwenden, findet der Compiler keinen Rückgabetyp und behandelt die Aufrufe als für ihre Nebenwirkungen und nicht für ihre Rückgabewerte verwendet.

Um dieses Problem zu beheben, müssen Sie muss explizit einen Rückgabetyp für Ihre Funktion deklarieren. Da die sumThis-Funktion in diesem Fall eine Ganzzahl zurückgibt, sollte ihre Signatur wie folgt lauten:

func sumThis(a, b int) int {
    // ...
}
Nach dem Login kopieren

Wenn die richtige Funktionssignatur vorhanden ist, wird der Code erfolgreich kompiliert und vergleicht die Rückgabewerte der darin enthaltenen Funktionsaufrufe korrekt die bedingte Anweisung.

Das obige ist der detaillierte Inhalt vonWie verwende ich Funktionsaufrufe in den bedingten Anweisungen von Go richtig?. 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