Rust [HELP]

TestUnDeuxTRois
2022-10-09 23:10:16

Rust vérifie-t-il la deuxième condition si la première est fausse (connectée à AND) ?

let calc = calculation(x);

if (calc == calculation(2*x)) & (calc == calculation(3 * x)) {...}

Le deuxième mandat sera-t-il même évalué si le premier échoue ? (si calc n'est pas égal à calcul(2*x), il n'est pas nécessaire d'évaluer le second terme car cette expression if ne peut plus être vraie ; Rust l'évalue-t-il ou non ?)

Encyklope2
2022-10-09 23:13:05

les opérations de conditions sont toujours évalués quel que soit le langage je pense

TestUnDeuxTRois
2022-10-09 23:13:58

Le 09 octobre 2022 à 23:13:05 :
les opérations de conditions sont toujours évalués quel que soit le langage je pense

bon si tu connais pas rust pas la peine d'inventer des réponses

TestUnDeuxTRois
2022-10-09 23:18:30

:up:

TestUnDeuxTRois
2022-10-09 23:24:26

:up:

hampter02
2022-10-09 23:39:00

Normalement non
Mais fait gaffe c’est && le ET
& c’est une opération bit a bit

TestUnDeuxTRois
2022-10-09 23:42:18

Le 09 octobre 2022 à 23:39:00 :
Normalement non
Mais fait gaffe c’est && le ET
& c’est une opération bit a bit

Donc & évaluera les deux termes, && évaluera uniquement le premier terme (dans ce cas). Sinon ce sont les mêmes ? Une raison de ne pas toujours utiliser && ? Ou il doit toujours être utilisé à la place de & ?

TestUnDeuxTRois
2022-10-09 23:48:53

up

hampter02
2022-10-09 23:50:20

Le 09 octobre 2022 à 23:42:18 :

Le 09 octobre 2022 à 23:39:00 :
Normalement non
Mais fait gaffe c’est && le ET
& c’est une opération bit a bit

Donc & évaluera les deux termes, && évaluera uniquement le premier terme (dans ce cas). Sinon ce sont les mêmes ? Une raison de ne pas toujours utiliser && ? Ou il doit toujours être utilisé à la place de & ?

Non ce n’est pas pareil, ce n’est pas les memes applications

Le & va comparer chaque bit de deux nombre binaire et en faire un nouveau, c’est utile pour faire des masques de sous reseaux par exemple

Ex: 010101 & 101010 donnera 000000
Et 11110000 10101111 donera 10100000

Le && c’est le ET conditionnel, il va comparer 2 bool et en donner un nouveau

Ex: true && true = true mais true && false = false

Dans quasiment tous les langages, une optimisation est fait(d’ailleurs je crois qu’on est un peu obligé de la faire mais je vais trop loin)

Si le premier est faux, alors on s’occupe pas du deuxième, on a deja la réponse, pas besoin d’evaluer le deuxième

OhMyLaw
2022-10-22 16:42:48

je sais pas en rust mais en c++, & est un opérateur qui peut être overload il me semble, et dans le & les 2 termes sont évalués, alors que le && n'évalue le 2e terme que si le 1er est true

coronacfd
2022-10-22 16:43:38

C'est &&

MPLS
2022-10-22 16:45:20

& c'est utilisé pour les masques

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.