Подтвердить что ты не робот

Что делает Ruby BEGIN?

Что означает BEGIN в Ruby и как оно называется? Например, с учетом этого кода:

puts "This is sentence 1."

BEGIN {
  puts "This is sentence 2."
}

почему puts "This is sentence 2." выполняется первым?

4b9b3361

Ответ 1

BEGIN и END устанавливают блоки, которые вызывают до того, как что-либо еще выполняется, или после всего остального, перед завершением интерпретатора.

Например, выполните следующее:

END { puts 'END block' }

puts 'foobar'

BEGIN { puts 'BEGIN block' }

Выходы:

BEGIN block
foobar
END block

Обычно мы будем использовать более логичный порядок для блоков BEGIN и END, но это демонстрирует, что они делают.

Ответ 2

Из Ruby docs для ключевого слова BEGIN:

BEGIN: Определяет, через кодовый блок, код, который должен выполняться безоговорочно, прежде чем начнется последовательное выполнение программы. Иногда используется для моделирования прямых ссылок на методы.

Ответ 3

BEGIN и END Блоки

Каждый исходный файл Ruby может объявлять блоки кода, которые будут выполняться по мере загрузки файла (блоки BEGIN) и после завершения программы (блоки END).

BEGIN { 
   begin block code 
} 

END { 
   end block code 
}

Программа может включать в себя несколько блоков BEGIN и END. Блоки BEGIN выполняются в том порядке, в котором они встречаются. Блоки END выполняются в обратном порядке.

Вы можете найти почти ту же запись в " "Начал... конец" , обозначая "блок" ?".

Подробнее о блоках на tutorialspoint