如果我分别创建两个具有相同内容的String实例,它们是相同的。默认情况下,自定义类不是这种情况(请参见下面的示例)。Ruby实例的唯一性
如果我有我自己的课程(Test
下面),我有一个变量(@v
下面),这是唯一的,即。两个Test
具有相同@v
的实例应该被视为相同,那么我将如何去告诉Ruby这种情况?
考虑这个例子:
class Test
def initialize(v)
@v = v
end
end
a = {Test.new('a') => 1, Test.new('b') => 2}
a.delete(Test.new('a'))
p a
# # Desired output:
# => {#<Test:0x100124ef8 @v="b">=>2}
具有相同内容的两个字符串实例不相同。 '“string”.equal?(“string”)'returns' false' – 2010-07-14 23:22:55
啊,我的错。我认为他们是因为'a = {'string'=>'一个字符串'}; a.delete('string')'起作用! – 2010-07-15 01:46:02
@JP:我认为散列有一个特殊情况,如果他们使用字符串作为关键。 – 2010-07-15 01:55:23