Prima o poi al neo programmatore Ruby capitera' di scontrarsi con le "stranezze" dell'operatore and.
Ad esempio eseguite su irb:
a = true and false
Quanto vale a ?
NON vale false come ci si aspetta, ma true !
Questo perche' and ha una priorita' molto bassa. La precedente espressione viene quindi interpretata come:
(a = true) and false
Puoi evitare questo usando && invece di and :
a = true && false
in questo caso a vale true.
La differenza tra and e && e' la priorita' con cui vengono interpretati: && ha una priorita' alta, and molto bassa.
Spesso quindi, anche se leggermente meno leggibile, e' meglio usare &&.
28 maggio 2010
Iscriviti a:
Commenti sul post (Atom)
E' corretto. il simbolo di "=" è di assegnazione e non di controllo che è "==".
RispondiEliminaCiao Michele.
Ciao Michele,
RispondiEliminacerto che e' corretto e che "=" e' diverso da "==" .
Il post vuole solo far notare la differenza tra "and" e "&&"
Ciao Ale
credo ci sia un errore in quello che dici. tu consideri:
RispondiElimina(a = true) and false
in realtà è:
a = (true and false)
ovvero
if(true and false)
a = true