概要
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で開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。