在Ruby中,为什么以下行是真的?
0 && 1 == 1
1 && 0 == 0
Run Code Online (Sandbox Code Playgroud)
为什么他们不同而且都不是0?
Ali*_*kau 37
&&如果first不是false,则布尔 AND运算符返回其第二个操作数.0并且1是true在Ruby的布尔表达式.只有nil和false在布尔表达式假.
nil && 15 # => nil
15 && 17 # => 17
15 && nil # => nil
Run Code Online (Sandbox Code Playgroud)
0并且1不代表Ruby中的真值.在红宝石中任何不符合nil或不符合的东西false.如果你添加到这个:
and和&&运算符计算它们的第一个操作数.如果为false,则表达式返回false; 否则,表达式返回第二个操作数的值.
得到您评估true && true的结果,然后返回第二个操作数的结果.如果你写了3 && 4,你会得到的4!