如果 elsif 别的并且结束
Ruby 为分支逻辑提供了预期的 if
和 else
表达式,由 end
关键字终止:
# Simulate flipping a coin
result = [:heads, :tails].sample
if result == :heads
puts 'The coin-toss came up "heads"'
else
puts 'The coin-toss came up "tails"'
end
在 Ruby 中,if
语句是求值的表达式,结果可以赋值给变量:
status = if age < 18
:minor
else
:adult
end
Ruby 还提供 C 风格的三元运算符( 详见此处 ),可表示为:
some_statement ? if_true : if_false
这意味着使用 if-else 的上述示例也可以写为
status = age < 18 ? :minor : :adult
此外,Ruby 提供 elsif
关键字,该关键字接受表达式以启用其他分支逻辑:
label = if shirt_size == :s
'small'
elsif shirt_size == :m
'medium'
elsif shirt_size == :l
'large'
else
'unknown size'
end
如果 if
/ elsif
链中没有条件为真,并且没有 else
子句,则表达式求值为 nil。这在字符串插值中很有用,因为 nil.to_s
是空字符串:
"user#{'s' if @users.size != 1}"