Что делает Ruby BEGIN?
Что означает BEGIN
в Ruby и как оно называется? Например, с учетом этого кода:
puts "This is sentence 1."
BEGIN {
puts "This is sentence 2."
}
почему puts "This is sentence 2."
выполняется первым?
Ответы
Ответ 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