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