Ruby的预定义变量会影响整个程序的行为,因此不推荐在库中使用它们。
大多数预定义变量中的值可以通过替代方法访问。
下表列出了所有Ruby的预定义变量。
没有 | 变量名称和描述 |
---|---|
1 | $!
提出的最后一个异常对象。也可以在rescue子句中使用=>来访问异常对象。 |
2 | $ @
堆栈回溯募集的最后一个异常。堆栈回溯信息可以通过Exception#backtrace方法检索最后一个异常。 |
3 | $ /
输入记录分隔符(默认为换行符)。获取,readline等,将他们的输入记录分隔符作为可选参数。 |
4 | $
输出记录分隔符(默认为nil)。 |
5 | $,
要打印的参数和Array#join之间的输出分隔符(默认为nil)。您可以将数组明确指定给Array#join。 |
6 | $;
split的默认分隔符(默认为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时接收分割输出的变量。如果指定-a命令行选项以及-p或-n选项,则设置此变量。 |
17 | $ FILENAME
目前正在从ARGF读取的文件的名称。相当于ARGF.filename。 |
18 | $ LOAD_PATH
一个数组,用于加载和要求方法加载文件时要保存要搜索的目录。 |
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和in-place-edit模式的值保存扩展名,否则为nil。可以启用或禁用就地编辑模式。 |
30 | $ -I
解释器选项-x的值和$:的别名。 |
31 | $ -l
解释器选项-x的值,如果选项-lis设置为true。只读。 |
32 | $ -p
解释器选项-x的值,如果选项-pis设置为true。只读。 |
33 | $ _
局部变量,最后一个字符string通过gets或readline在当前作用域中读取。 |
34 | $〜
与最后一场比赛相关的局部变量MatchData。Regex#match方法返回最后一个匹配信息。 |
35 | $ n($ 1,$ 2,$ 3 ...)
在最后一个模式匹配的第n组中匹配的字符string。相当于m [n],其中m是MatchData对象。 |
36 | $&
在最后一个模式匹配中匹配的字符string。相当于m [0],其中m是MatchData对象。 |
37 | $`
在最后一个模式匹配的匹配之前的字符string。相当于m.pre_match,其中m是MatchData对象。 |
38 | $"
匹配后的字符string在最后一个模式匹配。相当于m.post_match,其中m是MatchData对象。 |
39 | $ +
与最后一个模式匹配的最后一个成功匹配的组对应的字符string。 |