Ruby条件分岐case - Silver/Gold試験対策
case式は
whenのオブジェクト === caseのオブジェクト という形式で真偽判定される。 したがって、whenのオブジェクトによって振る舞いが異なる
klass = String pr = ->(s){ s } range = 1..5 r = /^\d+$/ case "12345" when r # 正規表現とのマッチ puts "正規表現にマッチしました" else puts "正規表現にマッチしませんでした" end case "hoge" when String # 同一クラスかどうか puts "クラスがおなじです" end case 1 when range # Rangeオブジェクトの範囲内か puts "範囲内です" end case "fuga" # "fuga"を引数としたProcオブジェクトの実行結果に一致します when pr puts "procの実行結果と一致します" end
whenにいくつかカンマ区切りで並んでいる場合はどれかに一致していれば真
case 3 when "4","5","3",3 p "一致しました" end