Rubyでswitch文を書く方法
概要
Rubyでswitch文を書くにはどうすればよいですか?
解決策
Ruby は代わりに case 式を使用します。
case x
when 1..5
"It's between 1 and 5"
when 6
"It's 6"
when "foo", "bar"
"It's either foo or bar"
when String
"You passed a string"
else
"You gave me #{x} -- I have no idea what to do with that."
end
Ruby は === 演算子を使用して、when 句のオブジェクトと case 句のオブジェクトを比較します。たとえば、x === (1..5) ではなく、(1..5) === x です。
これにより、上記のように洗練された when 句が可能になります。単なる平等性だけでなく、範囲、クラス、その他あらゆる種類のものをテストできます。
他の多くの言語の switch ステートメントとは異なり、Ruby の場合にはフォールスルーがないため、ブレークでそれぞれを終了する必要はありません。 when “foo”、“bar” のように、単一の when 句で複数の一致を指定することもできます。