Эквивалент "продолжить" в Ruby
В C и многих других языках, есть continue
ключевое слово, которое при использовании внутри цикла переходит к следующей итерации цикла. Есть ли какой-либо эквивалент этого continue
ключевое слово в Ruby?
6 ответов:
Да, это называется
next
.for i in 0..5 if i < 2 next end puts "Value of local variable is #{i}" end
это выводит следующее:
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
писать Иэн Purton это!--5--> ответ чуть более идиоматично:
(1..5).each do |x| next if x < 2 puts x end
принты:
2 3 4 5
внутри for-loops и методов итератора, таких как
each
иmap
thenext
ключевое слово в Рубине будет иметь эффект перехода к следующей итерации цикла (так же, какcontinue
В C).однако то, что он на самом деле делает, это просто вернуться из текущего блока. Так что вы можете использовать его с любой метод, который принимает блок, даже если он не имеет ничего общего с повторением.
Ruby имеет два других ключевых слова управления циклом / итерацией:
redo
иretry
. подробнее о них, и разница между ними, в Ruby QuickTips.
Я думаю, что это называется далее.