構文応用レベル

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 に使えます。

問題一覧へ戻る