Что означает BEGIN в Ruby и как оно называется? Например, с учетом этого кода:
puts "This is sentence 1."
BEGIN {
puts "This is sentence 2."
}
почему puts "This is sentence 2." выполняется первым?
Что означает BEGIN в Ruby и как оно называется? Например, с учетом этого кода:
puts "This is sentence 1."
BEGIN {
puts "This is sentence 2."
}
почему puts "This is sentence 2." выполняется первым?
BEGIN и END устанавливают блоки, которые вызывают до того, как что-либо еще выполняется, или после всего остального, перед завершением интерпретатора.
Например, выполните следующее:
END { puts 'END block' }
puts 'foobar'
BEGIN { puts 'BEGIN block' }
Выходы:
BEGIN block foobar END block
Обычно мы будем использовать более логичный порядок для блоков BEGIN и END, но это демонстрирует, что они делают.
Из Ruby docs для ключевого слова BEGIN:
BEGIN: Определяет, через кодовый блок, код, который должен выполняться безоговорочно, прежде чем начнется последовательное выполнение программы. Иногда используется для моделирования прямых ссылок на методы.
BEGIN и END Блоки
Каждый исходный файл Ruby может объявлять блоки кода, которые будут выполняться по мере загрузки файла (блоки BEGIN) и после завершения программы (блоки END).
BEGIN {
begin block code
}
END {
end block code
}
Программа может включать в себя несколько блоков BEGIN и END. Блоки BEGIN выполняются в том порядке, в котором они встречаются. Блоки END выполняются в обратном порядке.
Вы можете найти почти ту же запись в " "Начал... конец" , обозначая "блок" ?".
Подробнее о блоках на tutorialspoint