개요
Ruby의 BEGIN
과 END
에 대해서 알아보려고 합니다. BEGIN 블록은 프로그램을 개시하기 전에 실행할 문장을, END 블록은 프로그램 종료 직전에 실행할 문장을 지정합니다.
BEGIN 블록
BEGIN 블록으로 지정한 문장은 해당 파일의 다른 어떤 문장의 실행보다 먼저 실행됩니다
puts "Hello"
BEGIN { puts "World" }
# World
# Hello
여러 개의 BEGIN을 가지고 있는 경우, 선언한 순서대로 실행됩니다.
puts "Hello"
BEGIN { puts "World" }
BEGIN { puts "BEGIN" }
# World
# BEGIN
# Hello
BEGIN 블록은 로컬 변수 범위를 가지고 있으므로, 다른 로컬 변수와 값을 공유할 수 없습니다.
BEGIN {
$a = 0
b = 0
}
puts $a # Global Variable
puts b # Local Variable
# 0
# undefined local variable or method 'b' for main:Object (NameError)
END 블록
END 블록으로 지정한 문장은 모든 문장이 끝난 후 실행됩니다.
END { puts 5 }
puts 1
# 1
# 5
END 블록이 여러개인 경우 선언의 역순으로 호출됩니다.
END { puts 5 }
END { puts 3 }
puts 1
# 1
# 3
# 5
END 블록은 BEGIN 블록과 달리, 변수 범위를 공유합니다.
i = 1
END { puts i }
# 1
완료
Ruby에서 크게 활용되지는 않지만, 독특한 문법이므로 기억해두면 좋을거 같습니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
지금 보고 계신 블로그를 작성하는
관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.