Я пытаюсь поместить пользовательские объекты в набор.Я попробовал это:
require 'set'
class Person
include Comparable
def initialize(name, age)
@name = name
@age = age
end
attr_accessor :name, :age
def ==(other)
@name == other.name
end
alias eql? ==
end
a = Person.new("a", 18)
b = Person.new("a", 18)
people = Set[]
people << a
people << b
puts a == b # true
Кажется, что Set
не идентифицирует одни и те же объекты с помощью Object#eql?
или ==
методов:
puts people # #<Set: {#<Person:0x00007f9e09843df8 @name="a", @age=18>, #<Person:0x00007f9e09843da8 @name="a", @age=18>}>
Как Set
идентифицирует дваодни и те же объекты?