In Ruby, perché le seguenti righe sono vere?Perché 0 && 1 è 1 mentre 1 && 0 è 0 in ruby?
0 && 1 == 1
1 && 0 == 0
Perché sono diversi e non sono entrambi 0?
In Ruby, perché le seguenti righe sono vere?Perché 0 && 1 è 1 mentre 1 && 0 è 0 in ruby?
0 && 1 == 1
1 && 0 == 0
Perché sono diversi e non sono entrambi 0?
Boolean E l'operatore &&
restituisce il suo secondo operando se prima non è falso. 0
e 1
sono true
nelle espressioni booleane in Ruby. Solo nil
e false
sono false nelle espressioni booleane.
nil && 15 # => nil
15 && 17 # => 17
15 && nil # => nil
0
e 1
non rappresentano valori di verità in Ruby. In ruby tutto ciò che non è nil
o false
è vero. Se a questo si aggiunge che:
Il ee & & operatori valutano il loro primo operando. Se falso, l'espressione restituisce false; in caso contrario, l'espressione restituisce il valore del secondo operando.
Si ottiene che si valuta true && true
e quindi viene restituito il risultato del secondo operando. Se hai scritto 3 && 4
, avresti ottenuto 4
!
Oltre alle ottime risposte qui:
Probabilmente confondono logica e bit AND.
$ irb
1.9.3-p125 :001 > 1 & 0
=> 0
1.9.3-p125 :002 > 0 & 1
=> 0