2012-03-11 371 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