概要
事前定義変数について
詳細
Rubyで事前に定義されている定数は以下。
カテゴリ | 変数名 | 内容 |
---|---|---|
実行環境変数 | $0 | スクリプトファイル名 |
実行環境変数 | $PROGRAM_NAME | $0と同じ |
実行環境変数 | $* | 引数の配列 |
実行環境変数 | $" | requireによって組み込まれたモジュールのファイル名配列 |
実行環境変数 | $LOADED_FEATURES | $"と同じ |
実行環境変数 | $$ | プロセス番号 |
実行環境変数 | $? | 最後に実行した子プロセスの終了ステータス |
実行環境変数 | $: | load,requireでロードする際に検索するディレクトリの配列 |
実行環境変数 | $-I | $:と同じ |
実行環境変数 | $LOAD_PATH | $:と同じ |
実行環境変数 | $-a | -aオプションが指定されたかどうか |
実行環境変数 | __callee__ | 現在のメソッド名 |
実行環境変数 | __method__ | __callee__と同じ |
実行環境変数 | $DEBUG | デバッグモードかどうか |
実行環境変数 | $-d | $DEBUGと同じ |
実行環境変数 | __ENCODING__ | エンコード |
実行環境変数 | __FILE__ | 現在のファイル名 |
実行環境変数 | $F | -a利用時に分割した各行が入る変数 |
実行環境変数 | $FILENAME | 現在の入力ファイル名($<.filenameと同じ) |
実行環境変数 | $-i | -iオプションで呼び出された場合にバックアップファイルの拡張子を取得する |
実行環境変数 | $-l | -lオプション付きで呼び出されたかどうか |
実行環境変数 | __LINE__ | ソースの現在行番号 |
実行環境変数 | $-p | -pオプション付きで呼び出されたかどうか |
実行環境変数 | $SAFE | 現在のセーフレベル |
実行環境変数 | $VERBOSE | -v,-w,-Wが指定されているとtrue |
実行環境変数 | $-v | $VERBOSEと同じ |
実行環境変数 | $-w | $VERBOSEと同じ |
実行環境変数 | $-W | -Wオプションで設定された値 |
標準オブジェクト | ARGF | $<と同じ |
標準オブジェクト | ARGV | $*と同じ |
標準オブジェクト | ENV | 環境変数を取得する |
グローバル変数 | DATA | __END__以下をファイルとして扱う |
グローバル変数 | FALSE | falseへの参照 |
グローバル変数 | NIL | nilへの参照 |
グローバル変数 | RUBY_COPYRIGHT | Rubyのコピーライト |
グローバル変数 | RUBY_DESCRIPTION | Rubyのインタプリタバージョンとアーキテクチャ |
グローバル変数 | RUBY_ENGINE | Rubyのインタプリタ名 |
グローバル変数 | RUBY_PATCHLEVEL | Rubyインタプリタのパッチレベル |
グローバル変数 | RUBY_PLATFORM | 現在動作しているプラットフォームの識別子 |
グローバル変数 | RUBY_RELEASE_DATE | リリース日 |
グローバル変数 | RUBY_REVISION | リビジョン |
グローバル変数 | TRUE | trueへの参照 |
サンプルコード
# encoding: UTF-8 require_relative "../open_classes.rb" require 'pp' puts "----------------------------------------------------------" puts "** runtime test **" print_eval "puts $0" print_eval "puts $*" print_eval "puts $\"" print_eval "puts $$" print_eval "puts $:" print_eval "puts $-a" def hoge puts "(puts __callee__) => #{__callee__}" end hoge print_eval "puts $DEBUG" print_eval "puts __ENCODING__" puts __FILE__ print_eval "print $F" print_eval "print $FILENAME" print_eval "print $-i" print_eval "print $-l" puts "(puts __LINE__) #{__LINE__}行目" print_eval "print $-p" print_eval "print $SAFE" print_eval "print $VERBOSE" print_eval "print $-W" puts "----------------------------------------------------------" puts "** standard object test **" print_eval "print ARGF" print_eval "print ARGV" print_eval "print ENV" puts "----------------------------------------------------------" puts "** global constants test **" print_eval "print FALSE" print_eval "print NIL.class" print_eval "print RUBY_COPYRIGHT" print_eval "print RUBY_DESCRIPTION" print_eval "print RUBY_ENGINE" print_eval "print RUBY_PATCHLEVEL" print_eval "print RUBY_PLATFORM" print_eval "print RUBY_RELEASE_DATE" print_eval "print RUBY_REVISION" print_eval "print TRUE"
出力
---------------------------------------------------------- ** runtime test ** (puts $0) => C:/xxx/pre_reserve_word2.rb (puts $*) => (puts $") => enumerator.so C:/Ruby193/lib/ruby/1.9.1/i386-mingw32/enc/encdb.so C:/Ruby193/lib/ruby/1.9.1/i386-mingw32/enc/shift_jis.so C:/Ruby193/lib/ruby/1.9.1/i386-mingw32/enc/trans/transdb.so C:/Ruby193/lib/ruby/1.9.1/rubygems/defaults.rb C:/Ruby193/lib/ruby/1.9.1/i386-mingw32/rbconfig.rb C:/Ruby193/lib/ruby/1.9.1/rubygems/deprecate.rb C:/Ruby193/lib/ruby/1.9.1/rubygems/exceptions.rb C:/Ruby193/lib/ruby/1.9.1/rubygems/defaults/operating_system.rb C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb C:/Ruby193/lib/ruby/1.9.1/rubygems.rb C:/xxx/ruby/open_classes/object.rb C:/xxx/ruby/open_classes/string.rb C:/xxx/ruby/open_classes/open_classes.rb C:/xxx/mySite/RubySampleCode/open_classes.rb C:/Ruby193/lib/ruby/1.9.1/prettyprint.rb C:/Ruby193/lib/ruby/1.9.1/pp.rb (puts $$) => 5800 (puts $:) => C:/Ruby193/lib/ruby/site_ruby/1.9.1 C:/Ruby193/lib/ruby/site_ruby/1.9.1/i386-msvcrt C:/Ruby193/lib/ruby/site_ruby C:/Ruby193/lib/ruby/vendor_ruby/1.9.1 C:/Ruby193/lib/ruby/vendor_ruby/1.9.1/i386-msvcrt C:/Ruby193/lib/ruby/vendor_ruby C:/Ruby193/lib/ruby/1.9.1 C:/Ruby193/lib/ruby/1.9.1/i386-mingw32 (puts $-a) => false (puts __callee__) => hoge (puts $DEBUG) => false (puts __ENCODING__) => UTF-8 C:/xxx/pre_reserve_word2.rb (print $F) => (print $FILENAME) => - (print $-i) => (print $-l) => false (puts __LINE__) 26行目 (print $-p) => false (print $SAFE) => 0 (print $VERBOSE) => false (print $-W) => 1 ---------------------------------------------------------- ** standard object test ** (print ARGF) => ARGF (print ARGV) => [] (print ENV) => ENV ---------------------------------------------------------- ** global constants test ** (print FALSE) => false (print NIL.class) => NilClass (print RUBY_COPYRIGHT) => ruby - Copyright (C) 1993-2011 Yukihiro Matsumoto (print RUBY_DESCRIPTION) => ruby 1.9.3p0 (2011-10-30) [i386-mingw32] (print RUBY_ENGINE) => ruby (print RUBY_PATCHLEVEL) => 0 (print RUBY_PLATFORM) => i386-mingw32 (print RUBY_RELEASE_DATE) => 2011-10-30 (print RUBY_REVISION) => 0 (print TRUE) => true