Desidero specificare un metodo di blocco personalizzato per ordinare un array di oggetti in ruby, valutando due proprietà. Tuttavia dopo molte ricerche in google non ho avuto alcun esempio senza l'operatore < =>.metodo di ordinamento personalizzato in rubino
questo è quello che voglio fare: confrontando un vs B:
if a.x less than b.x return -1
if a.x greater than b.x return 1
if a.x equals b.x, then compare by another property , like a.y vs b.y
questo è il mio codice (niubbo in rubino, sorry) e non funziona ...
ar.sort! do |a,b|
if a.x < b.y return -1
elseif a.x > b.x return 1
else return a.y <=> b.y
end
Questo blocco è all'interno di una funzione, quindi il ritorno sta uscendo dalla funzione e restituisce -1 ... apprezzerò qualsiasi aiuto su questo.
Cordiali saluti.
perché non usi il metodo di ordinamento? –
@Gashner Lo sto usando, ma ho intenzione di personalizzare la valutazione. – alexserver
Perché è '<=>' escluso? Perché vuoi farlo nel modo più duro? –