Rails控制台,奇怪的问题

时间:2014-09-10 07:29:02

标签: ruby ruby-1.9.3

我键入以下内容:

>> x.inspect
"\"53219847091d6601dd000004\""

>> "53219847091d6601dd000004".inspect
"\"53219847091d6601dd000004\""

 >> "53219847091d6601dd000004"==x
 false

它们是相同的,为什么它们彼此不相等?

1 个答案:

答案 0 :(得分:2)

inspect返回对象的字符串表示形式,其实现取决于类:

class Foo
  def inspect
    "I'm Foo"
  end
end

class Bar
  def inspect
    "I'm Foo"
  end
end

foo = Foo.new
bar = Bar.new

foo.inspect
#=> "I'm Foo"

bar.inspect
#=> "I'm Foo"

foobar具有相同的inspect值,但它们不相等:

foo == bar
#=> false

事实上,它们是完全不同的对象:

foo.class #=> Foo
bar.class #=> Bar