変数が、どのクラスかをチェックする方法
instance_of?メソッドを使うことによってチェックできる。
array = Array.new # array変数の実体クラスのArrayを指定した場合はtrue puts array.class == Array # => true # 親クラスのObjectを指定さ場合は、false puts array.instance_of? Object # => false # ミックスインモジュールのEnumerableを指定した場合はfalse puts array.instance_of? Enumerable # => false
is_a?メソッドを使うと階層構造を含めてチェックできる。
puts array.is_a? Array # => true puts array.is_a? Object # => true(親クラスをチェックできる) puts array.is_a? Enumerable # => true(ミックスインもチェックできる) # Classクラスの===でも同じ比較が行える。直感的なのはis_a?かな。 puts Object === array