Diciamo che ho il seguente array:Fornire un proc a un metodo come un blocco
arr = [[5, 1], [2, 7]]
e voglio trovare l'elemento minimo, confrontando il secondo elemento degli elementi. L'elemento minimo sarà [5, 1]
poiché 1
è inferiore a 7
. Posso utilizzare il seguente codice:
arr.min {|a,b| a[1] <=> b[1]}
Per calcolare il massimo che posso fare lo stesso:
arr.max {|a,b| a[1] <=> b[1]}
Che dà [2, 7]
.
Io uso sempre lo stesso blocco. Mi piacerebbe avere quel blocco da qualche parte e fornirlo alla funzione min/max. Speravo qualcosa del tipo:
blo = lambda {|a,b| a[1] <=> b[1]}
arr.min blo
funzionava, ma non è così. Qualche idea su come posso farlo?
L'unico, che legge attentamente la domanda. – Nakilon
Questo è esattamente quello che stavo cercando. Grazie mille per la risposta! –
@Cristobal forse dovresti "accettare" la risposta che ti soddisfa. Indica agli altri utenti che questa domanda ha avuto risposta e la risposta è stata accettata. –