In C e in molte altre lingue, esiste una parola chiave continue
che, se utilizzata all'interno di un ciclo, salta alla successiva iterazione del ciclo. Esiste un equivalente di questa parola chiave continue
in Ruby?Equivalente di "continua" in Ruby
risposta
Sì, si chiama next
.
for i in 0..5
if i < 2
next
end
puts "Value of local variable is #{i}"
end
Questa emette il seguente:
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
=> 0..5
Questo è il modo in cui mi ricordo - Ruby rispetta Perl (' next') sopra C ('continue') –
Inside-loops e metodi iteratore come each
e map
la parola next
in rubino avrà l'effetto di saltare alla successiva iterazione del ciclo (stesso come continue
in C).
Tuttavia, ciò che effettivamente fa è solo tornare dal blocco corrente. Quindi puoi usarlo con qualsiasi metodo che prende un blocco - anche se non ha nulla a che fare con l'iterazione.
Penso che si chiami next.
next
inoltre, cerca redo
che rifà il corrente iterazione.
... perché ruby is rad come quello. –
Ruby ha due altre parole chiave di controllo loop/iteration: redo
e. Read more about them, and the difference between them, at Ruby QuickTips.
Scrivendo Ian Purton's answer in un modo un po 'più idiomatica:
(1..5).each do |x|
next if x < 2
puts x
end
Stampe:
2
3
4
5
Continua non si "Restart" i passanti, ma salta la prossima iterazione del ciclo. –
@mlaw: ho modificato la mia domanda di conseguenza per evitare confusione futura. –
possibile duplicato di [In Ruby, come faccio a saltare un ciclo in un ciclo .each, simile a 'continua'] (http://stackoverflow.com/questions/4230322/in-ruby-how-do-i-skip -a-loop-in-a-each-loop-similiar-to-continue) – dbr