2012-03-11 206 views

回答

37

布爾 AND運算符&&返回其第二個操作數,如果第一個操作數不是假的。 01是在Ruby中的布爾表達式中的true。在布爾表達式中,只有nilfalse爲假。

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

0 and 1在Ruby中不表示真值。在紅寶石任何不是nilfalse是真的。如果你補充一點:

的和與& &運營商評估他們的第一個操作數。如果爲false,則表達式返回false;否則,表達式返回第二個操作數的值。

您得到的結果是您評估true && true,然後返回第二個操作數的結果。如果你寫了3 && 4,你會得到4

3

這裏除了出色的答案:

你可能混淆邏輯按位與運算。

$ irb 
1.9.3-p125 :001 > 1 & 0 
=> 0 
1.9.3-p125 :002 > 0 & 1 
=> 0