【问题标题】:Ruby && operator on integers整数上的 Ruby && 运算符
【发布时间】:2024-04-30 23:25:02
【问题描述】:

有谁知道&&和||的意思吗?何时应用于 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

【问题讨论】:

标签: ruby operator-keyword


【解决方案1】:

布尔运算符&&||andor 是少数不是方法调用的语法糖的,因此在不同的类中没有不同的实现。

换句话说:它们对所有对象的行为完全相同,即它们对Integers 的行为与它们对Strings 的行为相同,@ 987654327@es、Floats、Symbols 和任何其他对象。

a && b

如果a 为假,则评估为a(在这种情况下根本不会评估b),否则评估为b(只有这样才会评估b

a || b

如果a 为真,则评估为a(在这种情况下根本不会评估b),否则评估为b(只有这样才会评估b

nilfalse是假的,其他都是真的,包括00.0''[]{}

【讨论】:

  • 谢谢。我刚刚意识到我忘了提及短路行为。 (你没有问它,但我还是添加了它。)