Ruby中对象是否是一个类的实例的判断instance_of?

  1. instance_of?
    instance_of? 方法用来判断对象是否是一个类的实例,会忽略继承。
 class A;      end
 class B < A ;  end
 class C < B ;  end
 b = B.new
 b.instance_of? A  #=> false
 b.instance_of? B   #=> true
 b.instance_of? C   #=> false
  1. is_a? kinde_of?
    这个两个方法都用来判断对象是否是一个类的实例,包括超类和module
module M;    end
class A
  include M
end
class B < A; end
class C < B; end
b = B.new
b.is_a? A          #=> true
b.is_a? B          #=> true
b.is_a? C          #=> false
b.is_a? M          #=> true
b.kind_of? A       #=> true
b.kind_of? B       #=> true
b.kind_of? C       #=> false
b.kind_of? M       #=> true

你可能感兴趣的:(Ruby中对象是否是一个类的实例的判断instance_of?)