У меня есть следующий класс LineaСортировать список рубина
class Linea
include Comparable
attr_accessor :maxcap, :capatuale, :citta1, :citta2, :lineac
def initialize(c1, c2, maxc)
raise CapacitaIllegale if maxc <= 0
@maxcap = maxc
@capatuale = maxc
@citta1 = c1
@citta2 = c2
@lineac = []
@lineac.push(c1)
@lineac << c2
end
def <=> (l)
if(l.is_a?(Linea))
if (l.maxcap>@maxcap)
return l.maxcap
end
if([email protected])
if (l.citta1.pop + l.citta2.pop>@[email protected])
return l.maxcap
end
end
end
return -1
end
end
после того, как в классе Rete, где я хочу, чтобы вставить Linea и делать вид, используя < => так;
class Rete
attr_accessor :lineec, :guasto_seg
def initialize()
@rete = []
@guasto_seg = []
end
def aggiungi_linea(c1, c2, maxc)
l = Linea.new(c1, c2, maxc)
unless (citta_presente(c1, c2))
@rete << l
@rete.sort { |l1,l2| l1<=>l2 if l1.is_a?(Linea) and l2.is_a?(Linea) }
else
raise LineaGiaEsistente
end
end
+ some diferent method
end
Я хотел попросить объяснений того, как она используется для рода, если у меня это право, если < => сделано и называется в этом роде, так правильно. ??????? , пожалуйста, ответьте мне как можно скорее, спасибо.
Вы можете прочитать документацию по этому вопросу : http://ruby-doc.org/core-1.9.3/Array.html#method-i-sort – summea