Управление потоком Ruby

Я не могу найти полезные ресурсы онлайн, который ломает различные опции управления потоком Ruby.

Давайте предположим, что я выполняю итерации по массиву в в методе:

def a_method
   things.each do |t|
      # control options?
   end
end

Каковы мои различные опции управления потоком здесь? Как они отличаются?

  1. повторить
  2. вернуть
  3. повреждение
  4. далее
  5. восстановление
10
задан keruilin 4 July 2010 в 13:41
поделиться

1 ответ

retry может использоваться внутри блока спасения, чтобы вернуться в блок begin после устранения условия, вызвавшего исключение. Внутри блока он имеет эффект перехода к началу выходящего метода. Так, внутри each это означает, что retry перейдет в начало цикла.

return вернется из метода, внутри которого он находится - в данном случае из a_method.

break вернется из выходящего метода - в данном случае из each (что будет отличаться от возврата из a_method, если что-то произойдет между концом блока each и концом a_method).

next вернется из блока и таким образом перейдет к следующему элементу в things.

redo перейдет к началу блока и таким образом повторит текущую итерацию.

16
ответ дан 3 December 2019 в 21:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: