Ruby オブジェクトのクラスを調べるには?

Rubyでは変数の型を宣言しないです。 そのため、オブジェクトは実際に何型かがわからない時が多いです。 オブジェクトのクラスを調べるには以下の三つの方法があります。

class

オブジェクトのクラスを調べられます。 返された結果はクラス名です。 例:

"文字列です。".class

出力結果:string

kind_of?

オブジェクトは特定のクラス又はそのサブクラスのインスタンスかどうかを調べられます。 モジュールに関しても、調べられます。 返された結果はtrue又はflaseです。 例:

"文字列です。".kind_of?(String)

出力結果:true

ちなみに、is_a?メソッドもあります。kind_of?の使い方と同じです。

instance_of?

オブジェクトは特定のクラスのインスタンスかどうかを調べられます。 kind_of?との区別は、サブクラスを含まらないことです。 つまり、kind_of?はサブクラスまで調べられますが、 instance_of?は特定のクラスだけ、サブクラスを調べられないです。 返された結果はtrue又はflaseです。 例:

"文字列です。".instance_of?(String)

出力結果:true

Share the post
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。