三元運算子

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