__FILE__と$0

こんな風に使える。

puts “filename: #{__FILE__}

似たようなのに $0 がある。 しかし $0 と FILE は似て非なるもの。 FILE が実行中のプログラムのファイル名を表すのに対し、 $0 は実行するときに指定したプログラムのファイル名を表す。

> ruby hoge.rb

のように実行するプログラムが1つの場合は、FILE と $0 の値は一致する。 しかし、別のプログラムから require したときは、FILE と $0 は一致しない。

この特徴を利用して、FILE と $0 はライブラリのサンプルコードによく利用される。 例えば以下のようにして書けば、ライブラリとして利用されるとき(require されて使われるとき)は サンプルコードの部分は実行されない。

if __FILE__ == $0 # サンプルコード end
カテゴリー: Linux, mac-OSX タグ: パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です