对象平等ruby

时间:2015-08-02 17:17:00

标签: ruby

'hello'.class == String # => true
'hello'.class === String # => false
'hello'.class.equal? String # => true

据我所知,equal?方法有最严格的比较测试。有人可以解释为什么===会在false返回equal?时返回true吗?

1 个答案:

答案 0 :(得分:1)

类的===如果定义为'是'的类'(包括层次结构中的类)。例如:

String === 'foo' # => true
Class === String # => true
'bar'.class === 'baz' # => true

class A; end
class B < A; end
A === B.new # => true