布尔值是一种可以为 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 中只有两个假值
false
nil
真值
其他所有值都被视为真值,包括
- 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?
检查数字是否为偶数。