Pre-defined variables and constants

前 - 次 - 目次

# 組込み変数

- `$!`
- `$@`
- `$&`
- `$``
- `$'`
- `$+`
- `$1, $2..`
- `$~`
- `$=`
- `$/`
- `$\`
- `$,`
- `$;`
- `$.`
- `$<`
- `$>`
- `$_`
- `$0`
- `$*`
- `$$`
- `$?`
- `$:`
- `$"`
- `$DEBUG`
- `$FILENAME`
- `$LOAD_PATH`
- `$stdin`
- `$stdout`
- `$stderr`
- `$VERBOSE`
- `$KCODE`
- `オプション変数`
  - `$-0`
  - `$-a`
  - `$-d`
  - `$-F`
  - `$-i`
  - `$-I`
  - `$-K`
  - `$-l`
  - `$-p`
  - `$-v`

`$!`

  最近の例外に関する情報． `raise` によって 設定されます．

`$@`

  例外が発生した時バックトレースが配列としてが格納されます． 配列の各要素はメソッドの呼び出し位置を示す文字列で形式は

  >     "filename:line"

  または

  >     "filename:line:in `methodname'"

  です． (覚え方: where exception occurred at.)
`$&`

  現在のスコープで最後に成功した正規表現のパターンマッチでマッチした 文字列．最後のマッチが失敗していた場合には`nil`． (覚え方: いくつかのエディタでの`&` と同じ)

`$``

  現在のスコープで最後に成功した正規表現のパターンマッチでマッチした 部分より前の文字列．最後のマッチが失敗していた場合には`nil`． (覚え方: ```は文字列の前に置かれる)

`$'`

  現在のスコープで最後に成功した正規表現のパターンマッチでマッチした 部分より後ろの文字列．最後のマッチが失敗していた場合には`nil`． (覚え方: `'`は文字列の後 ろに置かれる)

`$+`

  現在のスコープで最後に成功した正規表現のパターンマッチでマッチした 中で最後の括弧に対応する部分文字列． 最後のマッチが失敗していた場合には`nil`． いくつかある選択型のパターンのどれがマッチしたのか分からない時に便利 (覚え方: be positive and forward looking.)

`$1, $2...`

  最後に成功したパターンマッチでn番目の括弧にマッチした値が格 納されます．該当する括弧がなければ`nil`が入ってい ます．(覚え方: \数字 のようなもの)

`$~`

  現在のスコープで最後に成功したマッチに関する情報．これを設定 すると`$&`や ``$1...$9'`などの値が変化します． このデータからn番目のマッチ($n)を取り出すためには `$~[n]`で参照できます． (覚え方: ~ はマッチに使われる)

  この変数はローカルスコープです．

`$=`

  パターンマッチや文字列の比較でアルファベットの大文字小文字を 区別するかどうかのフラグ．デフォルトはnil．(覚え方: = は比較 に使われる)

`$/`

  入力レコードセパレータ．デフォルトは`"\n"`． `awk`のRS変数のように働きます．この変数にnilを設 定するとファイル全体を一度に読み込みます．`$/`に は正規表現は使えません．(覚え方: 詩では / を行の区切りに使う)

`$\`

  出力レコードセパレータ．この変数に文字列を指定すると `IO#write`や `print`の度に最 後にこの文字列を付加して出力します．デフォルトは `nil`でこの場合なにも追加しません． (覚え方: It's just like /, but it's what you get "back" from Ruby.)

`$,`

  `Array#join`のデフォ ルトの区切り文字列．

  `print`の各引数 の間に出力される文字列． (覚え方: print で , があるところで出力される)

`$;`

  `String#split`. のデフォルトの区切り文字．

`$.`

  最後に読んだ入力ファイルの行番号．

`$<`

  引数(なければ標準入力)で構成される仮想ファイル．つまり 定数ARGFの別名． (覚え方: `<`はシェルの入力元指定)

`$>`

  `print`や `printf`のデフォルト の出力先．初期値は`STDOUT`．``-i'`オプ ションを指定した場合には読み込み元と同じ名前のファイル．(覚 え方: `>`はシェルの出力先指定)

`$_`

  最後に`gets`または`readline`で読み込んだ文字列． EOF に達した場合には、nil．この変数はローカルスコープです． (覚え方: Perlと同じ)

`$0`

  現在実行中のRubyスクリプトの名前．OSによってはこの変数に代入すると `ps(1)`の出力が変化します．この機能はプログラムの 現在の状態を表示するのに便利です．(覚え方: sh や kshと同じ)

`$*`

  Rubyスクリプトに与えられた引数．Ruby自身に対する引数は取り除 かれています．(覚え方: sh や kshと同じ)

`$$`

  現在実行中のRubyプロセスのpid．(覚え方: シェルと同じ)

`$?`

  (このthreadで)最後に実行した子プロセスのstatus．

`$:`

  `load`や `require` がファイルをロードする時に検索するディレクトリのリストを含む 配列．

  起動時には， `-I`オプションで指定し たディレクトリ，環境変数RUBYLIBの値，デフォルト値 (コンパイル時に指定する，多くの場合 "/usr/local/lib/ruby")， "."(カレントディレクトリ)を値として持ちます． (覚え方: コロンは環境変数PATHの区切り文字である)

`$"`

  `require`でロー ドされたファイル名を含む配列． `require`で同 じファイルを2回ロードしないために用いられています．(覚え方: prevent files to be doubly quoted(loaded))

`$DEBUG`

  `-d`フラグの状態 (真偽値)．

`$FILENAME`

  仮想ファイル`ARGF`で現在読み込み中の (メソッドgetsが今読んでいる)ファイル名．`ARGF.filename` と同じ．

`$LOAD_PATH`

  `$:`の別名．

`$stdin`

  標準入力．

`$stdout`

  標準出力．

`$stderr`

  標準エラー出力．

`$VERBOSE`

  冗長メッセージフラグ．Rubyインタプリタへの `-v`オプション でセットされます．

`$KCODE`

  Rubyの処理する文字コード． 文字列で指定し，`E'または`e'の場 合は文字列やアクセスするファイルの内容のコードがEUCであると 仮定します．同様に`S'または`s'の場合はSJISとして処理します． `U'または`u'の場合はUTF-8として処理します． `N'または`n'の場合は漢字を処理しません． コンパイル時の設定でデフォルトが決まります．

オプション変数

  Rubyインタプリタのコマンドライン情報を示す一連の変数がありま す．形式は`$-?`で？の部分にオプションの一文字が入 ります．

  `$-0`

    `$/`の別名．

  `$-a`

    `-a`が指定されている時，真．リードオンリー変数．

  `$-d`

    `$DEBUG`の別名．

  `$-F`

    `$;`の別名．

  `$-i`

    `-i`が指定されている時，拡張子を表す文字列を格 納します．指定されていない時の値は`nil`です．スク リプト内で代入することもでき，その場合は ARGVの次のファイルを読み込み始めるタイミン グでin-place置換を開始します．

  `$-I`

    `$:`の別名．

  `$-K`

    `$KCODE`の別名．

  `$-l`

    `-l`が指定されている時，真．リードオンリー変数．

  `$-p`

    `-p`が指定されている時，真．リードオンリー変数．

  `$-v`

    `$VERBOSE`の別名．

# 組込み定数

- `TRUE`
- `FALSE`
- `NIL`
- `STDIN`
- `STDOUT`
- `STDERR`
- `ENV`
- `ARGF`
- `ARGV`
- `DATA`
- `RUBY_VERSION`
- `RUBY_RELEASE_DATE`
- `RUBY_PLATFORM`

`TRUE`

  代表的な真の値．Rubyでは偽でない値(falseでもnilでもない値)は 全て真とみなされます．

`FALSE`

  偽の値

`NIL`

  nil．

`STDIN`

  標準入力． `$stdin`のデフォルト値．

`STDOUT`

  標準出力．`$stdout`のデフォルト値．

`STDERR`

  標準エラー出力．`$stderr` のデフォルト値．

`ENV`

  環境変数を表す(疑似)連想配列．この連想配列 の値を変更すると子プロセスの環境として引き継がれます．

`ARGF`

  引数(なければ標準入力)で構成される仮想ファイル．つまり `gets`は`ARGF.gets`と同じ意味です． `ARGF.file`で現在読み込み中のファイルオブジェクトが， `ARGF.filename`で現在読み込み中のファイル名が 得られます．

`ARGV`

  `$*`と同じ

`DATA`

  スクリプトの`__END__`以降をアクセスするファイルオ ブジェクト．スクリプトがファイルに格納されていない時には定義 されない．

`RUBY_VERSION`

  Rubyのバージョンを示す文字列．

`RUBY_RELEASE_DATE`

  Rubyのリリース日を示す文字列．

`RUBY_PLATFORM`

  プラットフォームを示す文字列．

前 - 次 - 目次

matz@netlab.co.jp