Ruby true 关键字
最后修改日期:2025 年 4 月 27 日
本教程将介绍 Ruby 的 true 关键字和布尔逻辑。true 关键字在 Ruby 中代表布尔值的 true。
true 关键字是 Ruby 的两个布尔字面量之一(另一个是 false)。它是 TrueClass 的一个实例,在所有布尔上下文中都评估为 true。
在 Ruby 中,只有 false 和 nil 是假值。所有其他值,包括零、空字符串和空数组,都是真值。
基本 true 示例
这个简单的例子演示了在条件语句中最基本的 true 关键字用法。
if true puts "This will always execute" else puts "This will never execute" end
由于条件评估为 true,代码总是执行第一个分支。在这种情况下,else 分支是不可达的。
方法返回值中的 true
方法经常返回 true 来表示成功或积极的结果。本例展示了一个返回布尔值的验证方法。
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 的逻辑运算符(&&、||、!)一起使用。本例演示了布尔逻辑。
a = true
b = false
puts "AND: #{a && b}" # false
puts "OR: #{a || b}" # true
puts "NOT: #{!a}" # false
puts "XOR: #{a ^ b}" # true
该示例展示了与 true 和 false 的各种布尔运算。XOR(^)在操作数不同时返回 true。
三元运算符中的 true
三元运算符是一种简洁的条件语句,经常使用布尔值。本例展示了 true 决定返回值。
logged_in = true message = logged_in ? "Welcome back!" : "Please log in" puts message
三元运算符检查 logged_in 是否为 true,并返回相应的字符串。这是一种用于条件消息的常见模式。
作为默认参数的 true
方法可以使用 true 作为默认参数值。这使得可以选择布尔标志,这些标志默认为 true。
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 来创建灵活的条件。这允许复杂的匹配逻辑。
age = 25 case true when age < 18 puts "Child" when age < 65 puts "Adult" else puts "Senior" end
case 语句将每个条件与 true 进行评估。当条件不共享共同的主题时,此模式很有用。
对象比较中的 true
true 关键字可用于对象比较和相等性检查。本例演示了各种比较场景。
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 的 true 关键字,展示了布尔逻辑、方法返回值和条件结构。
作者
列出 所有 Ruby 教程。