Ruby如果,如果是,否则,结束
示例
Ruby提供分支逻辑的期望表达式if和else表达式,以end关键字终止:
#模拟掷硬币 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
endRuby还提供了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}"