icon
icon

Rubyでcase whenメソッドでclassを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでcase whenメソッドでclassを使う方法について現役エンジニアが解説しています。Rubyのcase whenメソッドとは、式が成り立てば処理を実行することができる構文の変数部分の指定になります。whenメソッドにclassを使ってclassの型で処理を分ける方法を解説します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyでcase whenメソッドでclassを使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyでcase whenメソッドでclassを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

 

case whenメソッドとは

case whenメソッドは、whenに変数に対する式を指定して、式が成り立てば処理を実行することができます。

case 変数
  when 式
    処理
end

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

case whenメソッドでclassを使う方法

case whenメソッドにclassを指定することができます。変数の中身が指定したクラスに属するものの場合、処理が実行されます。

case 変数
  when クラス
    処理
end

 

実際に書いてみよう

val = 'xyz'

case val
when String
  puts 'String'
when Array
  puts 'Array'
when Hash
  puts 'Hash'
else
  puts 'others'
end

と書きます。valに代入されているデータのclassをwhenで判定していきます。この場合、valに’xyz’という文字列が代入されているので、文字列のクラスであるStringと判定され、

String

と表示されます。

変数にハッシュを代入した場合を試してみます。

val = {name: "Orange"}

case val
when Sample
  puts 'Sample'
when String
  puts 'String'
when Array
  puts 'Array'
when Hash
  puts 'Hash'
else
  puts 'others'
end

と書いて実行すると、

Hash

と表示されます。独自に定義したクラスのインスタンスも判定できます。

class Sample
  def method1
    return "method1"
  end
end

val = Sample.new

case val
when Sample
  puts 'Sample'
when String
  puts 'String'
when Array
  puts 'Array'
when Hash
  puts 'Hash'
else
  puts 'others'
end

と書きます。独自クラスを判定することができます。実行すると、

Sample

と表示されます。

まとめ

case whenメソッドでclassを使うと、データのクラスが判定できます。対象データのclassを調べたい時に使ってみてください。

筆者プロフィール

伊藤広明(いとうひろあき)

1990年代からソフトウェア開発を仕事としてはじめ、2000年ごろからWEBエンジニアの仕事にも従事。世の中で末長く使ってもらえるシステム開発が信条。後進の育成にも力を入れている。

作れるもの:Webシステム、スマホアプリ
書ける言語: Ruby・PHP・Python・Java・Swift・C#・C/C++・JavaScriptなど
経験があるフレームワーク: Laravel・Ruby on Rails・Apache Strutsなど

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。