a, b, c = 0, 1, 2
[a, b, c].find(&:zero?) # => 0
¿Hay algún método que encuentre el primer elemento para el cual el bloque devuelve falso?¿Hay algún método en Ruby que haga lo contrario de encontrar?
[a, b, c].the_method(&:zero?) # => 1
En otras palabras, se comportaría de la misma manera que:
[a, b, c].reject(&:zero?).first
'reject (...). First' parece lo que buscas, ¿qué pasa con eso? –
¿qué hay de usar _Proc_? '[a, b, c] .find {| i | i! = 0} ' – konus
@Joe el problema es que recorre toda la colección y crea una matriz completa de todos los valores coincidentes, y luego los descarta. La belleza de 'encontrar' es que deja de iterar tan pronto como encuentra el primer valor coincidente. – Phrogz