Come si esegue questo tipo di ciclo for in Ruby?
for(int i=0; i<array.length; i++) {
}
Come si esegue questo tipo di ciclo for in Ruby?
for(int i=0; i<array.length; i++) {
}
Risposte:
array.each do |element|
element.do_stuff
end
o
for element in array do
element.do_stuff
end
Se hai bisogno di index, puoi usare questo:
array.each_with_index do |element,index|
element.do_stuff(index)
end
each
è fantastico. Ma a volte voglio solo un dannato tradizionale ciclo for. A volte il "modo Ruby" può essere semplicemente fastidioso.
limit = array.length;
for counter in 0..limit
--- make some actions ---
end
l'altro modo per farlo è il seguente
3.times do |n|
puts n;
end
questo stamperà 0, 1, 2, quindi potrebbe essere usato anche come iteratore di array
Pensa che la variante si adatti meglio alle esigenze dell'autore
Continuo a premere questo come collegamento superiore per google "ruby for loop", quindi volevo aggiungere una soluzione per i loop in cui il passaggio non era semplicemente "1". In questi casi, puoi utilizzare il metodo "step" che esiste sugli oggetti Numerics e Date. Penso che questa sia una buona approssimazione per un ciclo "for".
start = Date.new(2013,06,30)
stop = Date.new(2011,06,30)
# step back in time over two years, one week at a time
start.step(stop, -7).each do |d|
puts d
end
array.each_index do |i|
...
end
Non è molto Rubyish, ma è il modo migliore per eseguire il ciclo for dalla domanda in Ruby
each
ma piuttosto each_index
. +1
Se non hai bisogno di accedere al tuo array , (solo un semplice ciclo for) puoi usare upto o each:
Fino a:
1.9.3p392 :030 > 2.upto(4) {|i| puts i}
2
3
4
=> 2
Ogni:
1.9.3p392 :031 > (2..4).each {|i| puts i}
2
3
4
=> 2..4
Che cosa? Dal 2010 e nessuno ha menzionato Ruby ha una multa per / in loop (è solo che nessuno lo usa):
ar = [1,2,3,4,5,6]
for item in ar
puts item
end
La sintassi del ciclo di enumerazione di Ruby è diversa:
collection.each do |item|
...
end
Si legge come "una chiamata al metodo 'each' dell'istanza dell'oggetto array 'collection' che accetta il blocco con 'blockargument' come argomento". La sintassi del blocco in Ruby è "do ... end" o "{...}" per istruzioni a riga singola.
L'argomento del blocco "| elemento |" è facoltativo ma, se fornito, il primo argomento rappresenta automaticamente l'elemento enumerato in loop.