• [^] # Re: Ouaiche

    Posté par . En réponse au lien "Rust vs. Go: Why They’re Better Together". Évalué à 2. Dernière modification le 22 mars 2021 à 12:22.

    La première solution est impossible dans un langage généraliste, car dans ces langages, c'est un problème indécidable.

    Si c'est possible, c'est juste que le compilateur t'interdit une division s'il ne peut pas s'assurer que le dénominateur n'est pas 0.

    Donc

    a = b / c
    

    ne compile pas dans le cas général, il faut écrire des trucs du genre :

    a = c != 0 ? b / c : 0
    

    Et oui ça peux devenir relou dans tu as un truc du genre :

    Ça t'oblige à déstructurer ton calcul et si le langage et le compilateur sont pas au poil tu peut perdre en performance (il faut qu'il puisse virer les vérification à la compilation pour reconstruire l'opération).

    Sachant que de base tout ce qui va cacher pour toi (en attrapant l'interruption ou en faisant la vérification pour toi) va consommer de la ressource.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll