Metodo max e astronave

ìbuon pomeriggio!

dato il seguente frammento:

[…]

@datori = []

[…]

d = @datori.max{|a,b| a.disp <=> b.disp}

[…]

l’ultima riga dovrebbe mettere in d quello tra a e b con disp maggiore…
ma qlc mi sa spiegare la sintassi di quella riga? letteralemte che
significa?

grazie!

Per favore, prima di chiedere controlla sull’API doc di Ruby
http://www.ruby-doc.org/core/classes/Enumerable.html#M001157

Luca

blog: www.lucaguidi.com
Pro-Netics: www.pro-netics.com
Sourcesense - making sense of Open Source: www.sourcesense.com

@datori = []
d = @datori.max{|a,b| a.disp <=> b.disp}

l’ultima riga dovrebbe mettere in d quello tra a e b con disp maggiore…
ma qlc mi sa spiegare la sintassi di quella riga? letteralemte che
significa?

grazie!

In pratica è una sintassi che trovi in diversi metodi (mi viene in mente
#sort al momento) e che permette di ritornare l’elemento che ritorna la
#disp maggiore. Credo che un altro esempio sia la spiegazione migliore
(preso dalla doc segnalata da Luca)

a = %w(albatross dog horse)
a.max #=> “horse”
a.max {|a,b| a.length <=> b.length }

In questo caso mi ritorna la stringa con #lenght maggiore.
Buon lavoro :wink:


Andrea R., http://mikamai.com
Writing http://sensejs.wordpress.com/
Collaborating http://therubymine.it
Reading http://stacktrace.it

In pratica “dici” al metodo max come calcolare l’ordinamento relativo
tra i due valori.
Una cosa simile esiste anche in Perl…

PS: un consiglio, se mi permetti, guarda sempre la documentazione
ufficiale…può essere fonte di tante ispirazioni :wink:

2008/6/25 Andrea R. [email protected]: