ZetCode

Ruby true 关键字

最后修改日期:2025 年 4 月 27 日

本教程将介绍 Ruby 的 true 关键字和布尔逻辑。true 关键字在 Ruby 中代表布尔值的 true。

true 关键字是 Ruby 的两个布尔字面量之一(另一个是 false)。它是 TrueClass 的一个实例,在所有布尔上下文中都评估为 true。

在 Ruby 中,只有 falsenil 是假值。所有其他值,包括零、空字符串和空数组,都是真值。

基本 true 示例

这个简单的例子演示了在条件语句中最基本的 true 关键字用法。

basic_true.rb
if true
  puts "This will always execute"
else
  puts "This will never execute"
end

由于条件评估为 true,代码总是执行第一个分支。在这种情况下,else 分支是不可达的。

方法返回值中的 true

方法经常返回 true 来表示成功或积极的结果。本例展示了一个返回布尔值的验证方法。

method_return.rb
def valid_email?(email)
  email.include?("@") && email.include?(".")
end

result = valid_email?("user@example.com")

if result == true
  puts "Valid email address"
else
  puts "Invalid email address"
end

valid_email? 方法仅在两个条件都满足时才返回 true== true 比较是显式的,但在 Ruby 中通常是不必要的。

带逻辑运算符的 true

true 关键字与 Ruby 的逻辑运算符(&&||!)一起使用。本例演示了布尔逻辑。

logical_operators.rb
a = true
b = false

puts "AND: #{a && b}"  # false
puts "OR: #{a || b}"   # true
puts "NOT: #{!a}"      # false
puts "XOR: #{a ^ b}"   # true

该示例展示了与 truefalse 的各种布尔运算。XOR(^)在操作数不同时返回 true。

三元运算符中的 true

三元运算符是一种简洁的条件语句,经常使用布尔值。本例展示了 true 决定返回值。

ternary_operator.rb
logged_in = true

message = logged_in ? "Welcome back!" : "Please log in"

puts message

三元运算符检查 logged_in 是否为 true,并返回相应的字符串。这是一种用于条件消息的常见模式。

作为默认参数的 true

方法可以使用 true 作为默认参数值。这使得可以选择布尔标志,这些标志默认为 true。

default_parameter.rb
def process_data(data, verbose = true)
  puts "Processing data..." if verbose
  # data processing logic
  puts "Done!" if verbose
end

process_data([1, 2, 3])          # verbose output
process_data([1, 2, 3], false)   # silent processing

verbose 参数默认为 true,显示进度消息。传入 false 将抑制输出。

Case 语句中的 true

Case 语句可以在 when 子句中使用 true 来创建灵活的条件。这允许复杂的匹配逻辑。

case_statement.rb
age = 25

case true
when age < 18
  puts "Child"
when age < 65
  puts "Adult"
else
  puts "Senior"
end

case 语句将每个条件与 true 进行评估。当条件不共享共同的主题时,此模式很有用。

对象比较中的 true

true 关键字可用于对象比较和相等性检查。本例演示了各种比较场景。

object_comparison.rb
puts "true object ID: #{true.object_id}"
puts "TrueClass instance: #{true.instance_of?(TrueClass)}"
puts "Equality check: #{true == true}"      # true
puts "Identity check: #{true.equal?(true)}" # true
puts "Boolean conversion: #{!!true}"        # true

Ruby 中的所有 true 值都是同一个对象(单例模式)。本例展示了身份检查和布尔转换技术。

来源

Ruby TrueClass 文档

本教程通过实际示例涵盖了 Ruby 的 true 关键字,展示了布尔逻辑、方法返回值和条件结构。

作者

我的名字是 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。至今,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 Ruby 教程