2012-03-11 34 views

Odpowiedz

37

Boolean AND operator && zwraca drugi argument, jeśli pierwszy nie jest fałszywy. 0 i 1true w wyrażeniach logicznych w języku Ruby. Tylko nil i false są fałszywe w wyrażeniach logicznych.

nil && 15 # => nil 
15 && 17 # => 17 
15 && nil # => nil 
7

0 i 1 nie reprezentują wartości logiczne w Ruby. W rubinie wszystko, co nie jest zgodne z nil lub false, jest prawdziwe. Jeśli dodać do tego, że:

AND i & & operatorzy oceniają swój pierwszy argument. Jeśli false, wyrażenie zwraca false; w przeciwnym razie wyrażenie zwraca wartość drugiego argumentu.

Otrzymujesz, że oceniasz true && true, a następnie zwracany jest wynik drugiego argumentu. Jeśli napiszesz 3 && 4, dostaniesz 4!

3

Oprócz doskonałych odpowiedzi tutaj:

Prawdopodobnie mylić logiczne i bitowe łączeniu.

$ irb 
1.9.3-p125 :001 > 1 & 0 
=> 0 
1.9.3-p125 :002 > 0 & 1 
=> 0 
Powiązane problemy