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 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}"