Я иногда вижу блоки begin...end
, используемые в ruby, без каких-либо rescue
, else
, ensure
и т.д. операторов между ними. Например:
foo = begin
whatever = 3
"great"
42
end
Целью кодера, похоже, является использование блока begin...end
только для его качества группировки (как если бы begin
были do
). Лично я считаю, что это использование нарушает принцип наименьшего удивления (begin
подразумевает обработку исключений).
Существуют ли какие-либо непреднамеренные последствия использования begin...end
таким образом? У блоков begin...end
есть какие-либо смысловые различия (возможно, в обработке исключений?), Которые делают это использование опасным?
Синтаксис Ruby невероятно тонкий, и я не удивлюсь, если бы здесь были странные gotchas.