Odpowiednik "continue" w Ruby
W języku C i wielu innych językach istnieje słowo kluczowe continue
, które po użyciu wewnątrz pętli przeskakuje do następnej iteracji pętli. Czy jest jakiś odpowiednik tego continue
słowa kluczowego w Ruby?
6 answers
Tak, nazywa się next
.
for i in 0..5
if i < 2
next
end
puts "Value of local variable is #{i}"
end
Daje to następujące rezultaty:
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-08 14:35:35
next
Spójrz również na redo
, który ponownie wyświetla bieżącą iterację .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-24 19:41:59
Pisanie odpowiedź Iana Purtona w nieco bardziej idiomatyczny sposób:
(1..5).each do |x|
next if x < 2
puts x
end
Druki:
2
3
4
5
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-15 14:35:55
Wewnątrz pętli for i metod iteratora, takich jak each
i map
słowo kluczowe next
w Rubim będzie miało efekt przeskoczenia do następnej iteracji pętli (tak samo jak continue
W C).
Jednak to, co tak naprawdę robi, to po prostu powrót z bieżącego bloku. Możesz więc użyć go z dowolną metodą, która zajmuje blok - nawet jeśli nie ma to nic wspólnego z iteracją.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-24 19:40:36
Ruby ma dwa inne słowa kluczowe sterujące pętlą / iteracją: redo
i retry
.
Przeczytaj więcej o nich i różnicy między nimi w Ruby QuickTips .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-21 07:02:33