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

Ruby 这是测试对象是否为类实例的正确方法吗?,ruby,class,instance,Ruby,Class,Instance,我最初使用的是第一个==,它工作得很好,但网站只讨论了== 以这种方式使用时有什么区别 还有另一种方法: object.class == String object.class === String 注意 a = "foo" a.is_a?(String) 的种类?和的行为方式相同实例\才会返回true 示例 a = "foo" a.kind_of?(String) ==和==做什么?它们是否不同?=测试给定的条件是否相等,例如1==1产生true。=操作符通常测试右侧的元素是否包含在左侧

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


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

还有另一种方法:

object.class == String
object.class === String
注意

a = "foo"
a.is_a?(String)
的种类?
的行为方式相同<只有当是类的实例且不考虑子类时,代码>实例\才会返回true

示例

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

==
==
做什么?它们是否不同?
=
测试给定的条件是否相等,例如
1==1
产生
true
=
操作符通常测试右侧的元素是否包含在左侧的元素中。每个类都有自己的
===
实现。除了@nicooga语句外,请注意“a”==“b”产生false,因为“a”和“b”是两个不同的对象。可能是
10.class 
#=> Fixnum
10.is_a?(Integer)
#=> true
10.kind_of?(Integer)
#=> true
10.instance_of?(Integer)
#=> false