Rubyのkind_of?メソッドの使い方を現役エンジニアが解説【初心者向け】
初心者向けにRubyのkind_of?メソッドの使い方について解説しています。kind_of?はインスタンスがクラスに属しているかどうかを判定します。kind_of?はインスタンスのクラスと親クラスを含めますが、instance_of?はインスタンスのクラスのみになります。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Rubyのkind_of?メソッドの使い方について解説します。
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
今回は、Rubyに関する内容だね!
どういう内容でしょうか?
kind_of?メソッドの使い方について詳しく説明していくね!
お願いします!
kind_of?メソッドとは?
kind_of?メソッドとは、クラスを調べるためのメソッドです。引数にクラスを取り、そのクラスに属するならtrue、属さないのならfalseを返します。
よく似たメソッドとして、instance_of?があります。
instance_of?は、親クラスやインクルードしているモジュールを引数としたときfalseを返しますがkind_of?は、親クラスやインクルードしているモジュールを引数とした時もtrueを返します。
kind_of?の使い方
kind_of?は、以下のように使用します。
オブジェクト.kind_of?(クラス)
例えば、str = “test”がString型かどうかを調べる場合は
str.kind_of?(String)
と記載します。この場合は、strはstring型なのでtrueを返します。
実際に書いてみよう
それでは、実際にコードを書いてみましょう。
今回はstring型で検証します。まず確認のために、classメソッド・superclassメソッドでstring型の持つクラスを確認しそのあとで、kind_of?メソッドを使用します。
また、比較のためinstance_of?メソッドの使用例もみてみましょう。
# string型の変数を用意 str = "test" puts '---classの確認---' puts str.class puts str.class.superclass puts str.class.superclass.superclass puts '---kind_of---' puts str.kind_of?(String) puts str.kind_of?(Object) puts str.kind_of?(BasicObject) puts '---instance_of---' puts str.instance_of?(String) puts str.instance_of?(Object) puts str.instance_of?(BasicObject)
実行結果は以下の通りになります。
---classの確認--- String Object BasicObject ---kind_of--- true true true ---instance_of--- true false false
冒頭で説明した通り、kind_of?が親クラスであってもtrueを返す所に注意してください。
以上になります。使う頻度は多くはないですが、instance_of?と合わせて、クラスを調べる際に使用してください。
筆者プロフィール
メンター金成さん
フリーランスエンジニア。 使える言語は、ruby python go 。最近はgoにハマってます。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。