"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > L'évaluation de court-circuit de Go a-t-elle un impact sur les performances dans les instructions conditionnelles ?

L'évaluation de court-circuit de Go a-t-elle un impact sur les performances dans les instructions conditionnelles ?

Publié le 2024-12-22
Parcourir:621

Does Go's Short-Circuit Evaluation Impact Performance in Conditional Statements?

Évaluation de court-circuit en Go

En programmation, l'évaluation de court-circuit est une technique où une expression n'est évaluée que s'il est nécessaire de déterminer le résultat de l'instruction environnante . Ceci est souvent utilisé dans les instructions conditionnelles, où l'évaluation de plusieurs conditions est inutile si une condition antérieure est déjà fausse.

Go implémente l'évaluation de court-circuit pour les opérateurs logiques (&& et ||), similaire à de nombreuses autres programmations. langues. Cela signifie que dans une instruction if, l'interpréteur évaluera les conditions de gauche à droite et s'arrêtera dès que le résultat sera connu.

Concernant les exemples de code fournis, l'ordre d'évaluation des conditions n'affecte pas la performance du programme. Dans Go, les deux extraits de code se comporteront de la même manière. Le compilateur évaluera les expressions de gauche à droite et court-circuitera l'évaluation dès qu'il déterminera le résultat.

Pour démontrer cela, considérons le code suivant :

package main

import "fmt"

func main() {
    var r *http.Request
    queries := make(map[string][]string)

    if r == nil || len(queries) == 0 || !isValidQueryParams(&queries) {
        fmt.Println("Invalid querystring")
    }
}

Même si isValidQueryParams a plus de surcharge que r == nil et len(queries) == 0, le compilateur évaluera les expressions dans l'ordre et court-circuitera dès que le résultat sera clair. Par conséquent, il n'y a aucune différence de performances entre les deux extraits de code de votre exemple.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3