Maison >développement back-end >Golang >Go utilise-t-il l'évaluation des courts-circuits dans les expressions booléennes ?

Go utilise-t-il l'évaluation des courts-circuits dans les expressions booléennes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-08 13:51:021079parcourir

Does Go Utilize Short Circuit Evaluation in Boolean Expressions?

Go met-il en œuvre l'évaluation des courts-circuits ?

L'évaluation des courts-circuits fait référence à la pratique consistant à évaluer une expression dans une instruction if uniquement si elle est nécessaire pour déterminer le résultat de la déclaration. En d'autres termes, si la première expression d'une instruction if est évaluée comme fausse, les expressions restantes ne sont pas évaluées.

Go implémente l'évaluation de court-circuit. Cela peut être illustré avec le code suivant :

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
}

Lorsque ce code est exécuté, il imprimera le résultat suivant :

$ 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

Comme vous pouvez le voir, la fonction testFunc(2 ) n'est jamais appelé, car la première expression de l'instruction if (testFunc(1)) est évaluée à true. Cela démontre que Go implémente l'évaluation des courts-circuits.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn