In Ruby è brutto usare i for-loops. Questo è comunemente capito. una guida di stile consigliato a me: (https://github.com/bbatsov/ruby-style-guide#source-code-layout) dice:Come sostituire un ciclo for in Ruby?
"Non usare mai per, se non si conosce esattamente il motivo per cui maggior parte dei iteratori tempo dovrebbe essere usato al posto di è implementato in termini di ciascuno (così.. stai aggiungendo un livello di riferimento indiretto), ma con una svolta - perché non introduce un nuovo ambito (diversamente da ciascuno) e le variabili definite nel suo blocco saranno visibili al di fuori di esso. "
L'esempio dato è:
arr = [1, 2, 3]
#bad
for elem in arr do
puts elem
end
# good
arr.each { |elem| puts elem }
ho studiato e non riesco a trovare una spiegazione su come simulare un ciclo for che fornisce un valore di iterazione posso passare a luoghi o eseguire operazioni aritmetiche su . Per esempio, con quello che dovrei sostituire:
for i in 0...size do
puts array1[i]
puts array2[size-1 - i]
puts i % 2
end
E 'facile se si tratta di un array, ma ho spesso bisogno la posizione corrente per altri scopi. C'è una soluzione semplice che mi manca, o situazioni in cui è richiesto per. Inoltre, sento che le persone parlano di per come se non fosse mai necessario. Qual è quindi la loro soluzione a questo?
Può essere migliorato? E qual è la soluzione, se ce n'è una? Grazie.
Supponendo che 'array1' e' array2' abbiano la stessa dimensione, è meglio scrivere come 'array2 [-1 - i]' in modo da evitare di dover calcolare 'size'. – Borodin