#ruby

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

Qihuan Piao

朴 起煥

中国育ち、東京暮らし。読んだり書いたり、時には考え込んだり。親になってから5年ほど、ブログ(とその他もろもろ)は完全停止していたけど、気づけばまた書いている。ここにはそんな寄り道の記録を書いています。結論が出ない話も多いけど、それもまたよし。