整数上的Ruby &&运算符

-3 ruby operator-keyword

有没有人知道&&和||的含义 什么时候应用于Ruby中的整数?

以下是IRB中&&和||时的一些示例 适用于整数:

>> 1 && 2
=> 2

>> 2 && 1
=> 1

>> 15 && 20
=> 20

>> 20 && 15
=> 15

>> 0 && -1
=> -1

>> -1 && -2
=> -2

>> 1 || 2
=> 1

>> 2 || 1
=> 2
Run Code Online (Sandbox Code Playgroud)

Jör*_*tag 5

布尔运算符&&,||,andor是不是为方法调用语法糖的几个之一,因此,在不同的班级没有不同的实现.

换句话说:它们对于所有对象的行为完全相同,即它们对s的行为与对s,es,s,s和任何其他对象的行为相同.IntegerStringHashFloatSymbol

a && b
Run Code Online (Sandbox Code Playgroud)

评估aif是否a为falsey(b在这种情况下根本不会评估),否则评估为b(并且只有那时才会b被评估)

a || b
Run Code Online (Sandbox Code Playgroud)

评估aif a是否真实(b在这种情况下根本不会评估),否则评估为b(并且只有那时才会b被评估)

nil并且false是falsey,其他一切都是truthy,包括0,0.0,'',[],和{}.