-
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
-
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