10
come posso iterare su un array di rubino e sempre ottenere due valori, la corrente e l'altro, come:Iterate a coppie attraverso una serie rubino
[1,2,3,4,5,6].pairwise do |a,b|
# a=1, b=2 in first iteration
# a=2, b=3 in second iteration
# a=3, b=4 in third iteration
# ...
# a=5, b=6 in last iteration
end
mio caso d'uso: Voglio verificare se una matrice è ordinato e avendo un iteratore come questo potrei sempre confrontare due valori.
io non sono alla ricerca di each_slice
come in questa domanda: Converting ruby array to array of consecutive pairs
Sì, questo è esattamente quello che mi serve! Ho esaminato [Enumerable] (http://ruby-doc.org/core-2.1.0/Enumerable.html) e [Enumerator] (http://ruby-doc.org/core-2.1.0/Enumerator. html) ma non l'ho visto. Thx – Andi
@Andi e riguardo il tuo caso d'uso: 'ary.each_cons (2) .all? {| a, b | a <= b} 'restituisce' true' se i valori sono ordinati. (sfortunatamente, non puoi usare 'all? (&: <=)' qui a causa del modo in cui 'each_cons' produce i valori) – Stefan