オーダーメイドコース
icon
icon

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を返します。

[PR] 未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

それでは、実際にコードを書いてみましょう。

今回は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?と合わせて、クラスを調べる際に使用してください。

 

筆者プロフィール

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

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

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