Ruby 布尔值

布尔值是一种可以为 truefalse 的值。

这是 Ruby 中布尔值的简单示例。你可以阅读其余教程以了解更多信息。

示例

is_open = true
is_active = false

puts is_open   
puts is_active


# Output:
# true
# false

在这里,变量 is_open 存储布尔值 true,而 is_active 存储 false


布尔值

在 Ruby 中,两个布尔值是 truefalse。这些值不仅仅是关键字——它们在 Ruby 中是实际的对象。

# Use the .class method to find the class of true and false
puts true.class     
puts false.class

输出

TrueClass
FalseClass

这意味着,

  • trueTrueClass 的一个实例。
  • falseFalseClass 的一个实例。

注意: TrueClassFalseClass 是 Ruby 中内置的类。


布尔表达式

布尔表达式是一个被求值为 truefalse 的表达式。

在 Ruby 中,这些表达式通常涉及对值进行比较,例如检查数字是否相等,或者它们是否大于或小于其他数字。例如,

puts 10 > 5         # true
puts 3 == 3         # true
puts "cat" == "dog" # false
puts 7 <= 2         # false

这些表达式中的每一个都会返回一个布尔值:truefalse


带逻辑运算符的布尔值

在 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_adminfalse,因为只有一个值为 true
  • logged_in || is_admintrue,因为其中一个值为 true
  • !logged_in 变为 false,因为 logged_intrue

注意: 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 中,不仅仅是 truefalse 会表现得像布尔值。在条件中用于 Ruby 时,其他值也被视为 truefalse

  • 真值是在条件中被 Ruby 视为 true 的任何值。
  • 假值是在条件中被 Ruby 视为 false 的值。

假值

Ruby 中只有两个假值

  • false
  • nil

真值

其他所有值都被视为真值,包括

  • 0(零)
  • ""(空字符串)
  • [](空数组)
  • 任何不是 falsenil 的对象。

即使它们看起来“空”或“零”,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? 检查数字是否为偶数。
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战