codice di Sean va bene, ma io preferisco scritto in questo modo, che è più intenzione -revealing e un po 'più efficiente:
people sort: [ :a :b |
a age < b age
or: [a age = b age and: [ a name < b name ] ]
l'idea è che il blocco di tipo deve rispondere vero se l'oggetto a
sorta prima voce b
. Con due chiavi di considerare, un elemento sorta prima di un altro articolo se sia sua chiave primaria (age
) è minore, o la chiave primaria è lo stesso, e la chiave secondaria (name
) è inferiore.
Questo si traduce direttamente nel codice di cui sopra e può essere facilmente esteso a un terzo o più criteri di ordinamento (ad esempio, la chiave secondaria è inferiore oppure è la stessa e la chiave terziaria è inferiore).
fonte
2011-11-21 10:05:33
Preferisco anche così :) –