为什么0 && 1是1而1 && 0在红宝石中是0?

CEG*_*GRD 24 ruby operators

在Ruby中,为什么以下行是真的?

0 && 1 == 1
1 && 0 == 0
Run Code Online (Sandbox Code Playgroud)

为什么他们不同而且都不是0?

Ali*_*kau 37

&&如果first不是false,则布尔 AND运算符返回其第二个操作数.0并且1true在Ruby的布尔表达式.只有nilfalse在布尔表达式假.

nil && 15 # => nil
15 && 17 # => 17
15 && nil # => nil
Run Code Online (Sandbox Code Playgroud)


Alb*_*ini 7

0并且1不代表Ruby中的真值.在红宝石中任何不符合nil或不符合的东西false.如果你添加到这个:

and和&&运算符计算它们的第一个操作数.如果为false,则表达式返回false; 否则,表达式返回第二个操作数的值.

得到您评估true && true的结果,然后返回第二个操作数的结果.如果你写了3 && 4,你会得到的4!