2012-03-11 12 views

risposta

37

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 
7

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!

3

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