programmazione - ruby pdf




Equivalente di "continua" in Ruby (4)

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 continue parola chiave in Ruby?


All'interno di for-loops e metodi iterator come each e map la next parola chiave in ruby ​​avrà l'effetto di saltare alla successiva iterazione del ciclo (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 sia chiamato il next .


Sì, si chiama il next .

for i in 0..5
   if i < 2
     next
   end
   puts "Value of local variable is #{i}"
end

Questo produce quanto segue:

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 

Scrivere la risposta di Ian Purton in un modo leggermente più idiomatico:

(1..5).each do |x|
  next if x < 2
  puts x
end

stampe:

  2
  3
  4
  5




continue