Rails консоль, странный вопрос
Я печатаю следующее:
>> x.inspect
"\"53219847091d6601dd000004\""
>> "53219847091d6601dd000004".inspect
"\"53219847091d6601dd000004\""
>> "53219847091d6601dd000004"==x
false
Они одинаковы, так почему они не равны друг другу?
1 ответ
Решение
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"
foo
а также bar
имеют те же inspect
значение, но они не равны:
foo == bar
#=> false
На самом деле это абсолютно разные объекты:
foo.class #=> Foo
bar.class #=> Bar