这是测试对象是否是类的实例的正确方法吗?

时间:2013-01-28 20:16:50

标签: ruby class instance

object.class == String
object.class === String

我最初使用的是第一个==,它工作得很好,this网站只讨论===

以这种方式使用有什么区别?

1 个答案:

答案 0 :(得分:2)

这是另一种方式:

a = "foo"
a.is_a?(String)

注意

a = "foo"
a.kind_of?(String)

kind_of?is_a?的行为方式相同。 instance_of?只有在是类的实例并且不考虑子类时才返回true。

示例

10.class 
#=> Fixnum
10.is_a?(Integer)
#=> true
10.kind_of?(Integer)
#=> true
10.instance_of?(Integer)
#=> false