構文応用レベル
Ruby の case/when で範囲(Range)を使った条件分岐は可能ですか?
- 1不可能。when には値のみ指定できる
- 2可能。`when 1..10` のように書ける
- 3可能だが、`when range_include?(n)` と書く必要がある
- 4可能だが、Integer の場合のみ
解説
case/when は ===(case equality)演算子を使って比較します。Range の === は値が範囲内に含まれるかを判定するため、when 1..10 のように範囲を直接書けます。正規表現(パターンマッチ)やクラス名(型チェック)も when に使えます。