布尔值是一种可以为 true 或 false 的值。
这是 Ruby 中布尔值的简单示例。你可以阅读其余教程以了解更多信息。
示例
is_open = true
is_active = false
puts is_open
puts is_active
# Output:
# true
# false
在这里,变量 is_open 存储布尔值 true,而 is_active 存储 false。
布尔值
在 Ruby 中,两个布尔值是 true 和 false。这些值不仅仅是关键字——它们在 Ruby 中是实际的对象。
# Use the .class method to find the class of true and false
puts true.class
puts false.class
输出
TrueClass FalseClass
这意味着,
true是TrueClass的一个实例。false是FalseClass的一个实例。
注意: TrueClass 和 FalseClass 是 Ruby 中内置的类。
布尔表达式
布尔表达式是一个被求值为 true 或 false 的表达式。
在 Ruby 中,这些表达式通常涉及对值进行比较,例如检查数字是否相等,或者它们是否大于或小于其他数字。例如,
puts 10 > 5 # true
puts 3 == 3 # true
puts "cat" == "dog" # false
puts 7 <= 2 # false
这些表达式中的每一个都会返回一个布尔值:true 或 false。
带逻辑运算符的布尔值
在 Ruby 中,你可以使用 逻辑运算符 来组合或更改布尔值。生成的表达式将产生一个新的布尔结果。
我们来看一个例子。
logged_in = true
is_admin = false
puts logged_in && is_admin # false
puts logged_in || is_admin # true
puts !logged_in # false
在此示例中
logged_in && is_admin为false,因为只有一个值为true。logged_in || is_admin为true,因为其中一个值为true。!logged_in变为false,因为logged_in为true。
注意: Ruby 有3个逻辑运算符。
&&表示and — 仅当两边都为true时才返回true。||表示or — 只要其中一边为true就返回true。!表示not — 翻转值(将true变为false,反之亦然)。
在 if...else 中使用布尔值
布尔值通常在 if...else 语句 中使用,以决定运行哪个代码。例如,
is_raining = true
if is_raining
puts "Take an umbrella!"
else
puts "Enjoy the sunshine!"
end
输出
Take an umbrella!
在这里,is_raining 是一个布尔值。因为它为 true,所以 if 块会运行。如果它是 false,则会运行 else 块。
真值和假值
在 Ruby 中,不仅仅是 true 和 false 会表现得像布尔值。在条件中用于 Ruby 时,其他值也被视为 true 或 false。
- 真值是在条件中被 Ruby 视为
true的任何值。 - 假值是在条件中被 Ruby 视为
false的值。
假值
Ruby 中只有两个假值
falsenil
真值
其他所有值都被视为真值,包括
- 0(零)
""(空字符串)[](空数组)- 任何不是
false或nil的对象。
即使它们看起来“空”或“零”,Ruby 仍然将其视为 true。让我们通过一个例子来看看这是如何工作的。
puts !!false # false
puts !!nil # false
puts !!0 # true
puts !!"" # true
puts !![] # true
注意: !! 用于将任何值转换为其布尔形式。
常见问题
在 Ruby 中,有些方法会返回布尔值。它们被称为谓词方法,通常以问号(?)结尾。例如,
puts "".empty? # true
puts [1].empty? # false
puts 4.even? # true
在这里,empty? 和 even? 是谓词方法
empty?检查字符串或数组是否为空。even?检查数字是否为偶数。