三元运算符

Ruby 有一个三元运算符(?:),它根据条件是否为 truthy 返回两个值中的一个:

conditional ? value_if_truthy : value_if_falsy

value = true
value ? "true" : "false"
#=> "true"

value = false
value ? "true" : "false"
#=> "false"

它与写作 if a then b else c end 相同,尽管三元是首选

例子:

puts (if 1 then 2 else 3 end) # => 2

puts 1 ? 2 : 3                # => 2

x = if 1 then 2 else 3 end
puts x                        # => 2