Ruby-事前定義された変数

Rubyの事前定義された変数はプログラム全体の動作に影響を与えるため、ライブラリでの使用はお勧めしません。

ほとんどの事前定義された変数の値には、別の方法でアクセスできます。

次の表に、Rubyの事前定義されたすべての変数を示します。

シニア番号 変数名と説明
1

$!

最後に発生した例外オブジェクト。例外オブジェクトには、rescue句で=>を使用してアクセスすることもできます。

2

$@

発生した最後の例外のスタックバックトレース。スタックバックトレース情報は、最後の例外のException#backtraceメソッドによって取得できます。

3

$/

入力レコード区切り文字(デフォルトでは改行)。get、readlineなどは、オプションの引数として入力レコード区切り文字を取ります。

4

$\

出力レコード区切り文字(デフォルトではnil)。

5

$,

printする引数とArray#join(デフォルトではnil)の間の出力区切り文字。Array#joinに明示的に区切り文字を指定できます。

6

$;

分割のデフォルトの区切り文字(デフォルトではnil)。String#splitには明示的に区切り文字を指定できます。

7

$.

現在の入力ファイルから読み取られた最後の行の番号。ARGF.linenoと同等です。

8

$<

ARGFの同義語。

9

$>

$ defoutの同義語。

10

$0

実行中の現在のRubyプログラムの名前。

11

$$

実行中の現在のRubyプログラムのプロセスpid。

12

$?

最後のプロセスの終了ステータスが終了しました。

13

$:

$ LOAD_PATHの同義語。

14

$DEBUG

-dまたは--debugコマンドラインオプションが指定されている場合はTrue。

15

$defout

printおよびprintfの宛先出力(デフォルトでは$ stdout)。

16

$F

-aが指定されている場合にsplitから出力を受け取る変数。この変数は、-pまたは-nオプションとともに-aコマンドラインオプションが指定されている場合に設定されます。

17

$FILENAME

ARGFから現在読み取られているファイルの名前。ARGF.filenameと同等です。

18

$LOAD_PATH

loadメソッドとrequireメソッドを使用してファイルをロードするときに検索されるディレクトリを保持する配列。

19

$SAFE

セキュリティレベル

0→外部から提供された(汚染された)データに対してチェックは実行されません。(デフォルト)

1→汚染されたデータを使用した潜在的に危険な操作は禁止されています。

2→プロセスおよびファイルに対する潜在的に危険な操作は禁止されています。

3→新しく作成されたすべてのオブジェクトは汚染されていると見なされます。

4→グローバルデータの変更は禁止されています。

20

$stdin

標準入力(デフォルトではSTDIN)。

21

$stdout

標準出力(デフォルトではSTDOUT)。

22

$stderr

標準エラー(デフォルトではSTDERR)。

23

$VERBOSE

-v、-w、または--verboseコマンドラインオプションが指定されている場合はTrue。

24

$- x

インタプリタオプション-xの値(x = 0、a、d、F、i、K、l、p、v)。これらのオプションを以下に示します

25

$-0

インタプリタオプション-xの値と$ /のエイリアス。

26

$-a

インタプリタオプション-xの値。オプション-aが設定されている場合はtrue。読み取り専用。

27

$-d

インタプリタオプション-xの値と$ DEBUGのエイリアス

28

$-F

インタプリタオプション-xの値と$;のエイリアス。

29

$-i

インタプリタオプション-xおよびインプレース編集モードの値は拡張子を保持します。それ以外の場合はnilです。インプレース編集モードを有効または無効にできます。

30

$-I

インタプリタオプション-xの値と$のエイリアス:。

31

$-l

インタプリタオプション-xの値。オプション-lisが設定されている場合はtrue。読み取り専用。

32

$-p

インタプリタオプション-xの値。オプション-pisが設定されている場合はtrue。読み取り専用。

33

$_

ローカル変数、getsによって読み取られた最後の文字列、または現在のスコープ内のreadline。

34

$~

最後の一致に関連するローカル変数MatchData。Regex#matchメソッドは、最後の一致情報を返します。

35

$ n ($1, $2, $3...)

最後のパターン一致のn番目のグループで一致した文字列。m [n]と同等です。ここで、mはMatchDataオブジェクトです。

36

$&

最後のパターン一致で一致した文字列。m [0]と同等です。ここで、mはMatchDataオブジェクトです。

37

$`

最後のパターンマッチで一致する前の文字列。m.pre_matchと同等です。ここで、mはMatchDataオブジェクトです。

38

$'

最後のパターン一致の一致に続く文字列。m.post_matchと同等です。ここで、mはMatchDataオブジェクトです。

39

$+

最後のパターン一致で最後に正常に一致したグループに対応する文字列。