Ruby에서 BEGIN, END

2020-08-24 hit count image

Ruby에서 BEGIN, END 블록에 관해서 알아봅시다.

개요

Ruby의 BEGINEND에 대해서 알아보려고 합니다. 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에서 크게 활용되지는 않지만, 독특한 문법이므로 기억해두면 좋을거 같습니다.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

책 홍보

저도 블로그를 시작한지 1년만에...책을 다 써봅니다...인생에서 이런 날도 오는군요...타국에서 책 출판도 할 수 있고, 참 좋은 세상입니다.

이번에 쓴 책은 스무디 한 잔 마시며 끝내는 React Native입니다. 다양한 예제를 통해 리액트 네이티브를 공부할 수 있도록 구성해 보았습니다. 또한 설치부터 배포까지 실전에서도 사용할 수 있는 내용들을 담고 있습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native React Native로 실전 스마트폰 앱 만들기
Posts