Heim >Backend-Entwicklung >Golang >Nutzt Go die Kurzschlussauswertung in booleschen Ausdrücken?

Nutzt Go die Kurzschlussauswertung in booleschen Ausdrücken?

Linda Hamilton
Linda HamiltonOriginal
2024-11-08 13:51:021082Durchsuche

Does Go Utilize Short Circuit Evaluation in Boolean Expressions?

Implementiert Go eine Kurzschlussauswertung?

Unter Kurzschlussauswertung versteht man die Praxis, einen Ausdruck in einer if-Anweisung nur dann auszuwerten, wenn dies der Fall ist notwendig, um das Ergebnis der Aussage zu ermitteln. Mit anderen Worten: Wenn der erste Ausdruck in einer if-Anweisung „falsch“ ergibt, werden die übrigen Ausdrücke nicht ausgewertet.

Go implementiert die Kurzschlussauswertung. Dies kann mit dem folgenden Code veranschaulicht werden:

package main

import "fmt"

func main() {
    for i := 0; i < 10; i++ {
        if testFunc(1) || testFunc(2) {
            // do nothing
        }
    }
}

func testFunc(i int) bool {
    fmt.Printf("function %d called\n", i)
    return true
}

Wenn dieser Code ausgeführt wird, wird die folgende Ausgabe ausgegeben:

$ function 1 called
$ function 1 called
$ function 1 called
$ function 1 called
$ function 1 called
$ function 1 called
$ function 1 called
$ function 1 called
$ function 1 called
$ function 1 called

Wie Sie sehen können, ist die Funktion testFunc(2 ) wird nie aufgerufen, da der erste Ausdruck in der if-Anweisung (testFunc(1)) als wahr ausgewertet wird. Dies zeigt, dass Go die Kurzschlussauswertung implementiert.

Das obige ist der detaillierte Inhalt vonNutzt Go die Kurzschlussauswertung in booleschen Ausdrücken?. 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