Ruby的预定义变量会影响整个程序的行为,因此不建议在库中使用它们.
大多数预定义变量中的值可以通过其他方式访问.
下表列出了所有Ruby的预定义变量.
Sr.No. | 变量名称&描述 |
---|---|
1 | $! 引发的最后一个异常对象.也可以使用=>访问异常对象.在 rescue 子句中. |
2 | $@ 引发最后一个异常的堆栈 backtrace . stack backtrace 信息可以通过最后一个异常的异常#backtrace方法检索. |
3 | $/ 输入记录分隔符(换行符)默认情况下). 获取,readline,等,将他们的输入记录分隔符作为可选参数. |
4 | $ \ 输出记录分隔符( nil默认情况下.) |
5 | $, print参数和Array#join之间的输出分隔符(默认为nil).您可以明确指定分隔符到Array#join. |
6 | &dollar ;; 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命令行op,则为True指定了. |
15 | $ defout print 和 printf 的目标输出( $ stdout 默认情况下.) |
16 | $ F 当-a时,从 split 接收输出的变量是指定.如果-a命令行选项与-p或-n选项一起指定,则设置此变量. |
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命令行选项,则为真. |
24 | $ - x 解释器选项-x的值(x = 0,a,d,F,i,K,l,p,v).这些选项列在下面 |
25 | $ -0 解释器选项-x的值和$/的别名. |
26 | $ -a 如果设置了选项-a,则解释器选项-x的值为true.只读. |
27 | $ -d 解释器选项-x的值和$ DEBUG的别名 |
28 | $ -F 解释器选项-x的值和$;的别名. |
29 | $ -i 解释器选项的值-x和in-place-edit模式,保持扩展名,否则为nil.可以启用或禁用就地编辑模式. |
30 | $ -I 解释器选项-x的值和$:的别名. |
31 | &dollar ; -l 解释器选项-x的值,如果选项-lis设置,则为true.只读. |
32 | $ -p 解释器选项-x的值,如果选项-pis,则为true.只读. |
33 | $ _ 本地变量,当前范围内的get或readline读取的最后一个字符串. |
34 | $〜 与最后一场比赛有关的局部变量 MatchData .正则表达式#matse方法返回最后一个匹配信息. |
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 | $+ 与上次模式匹配中最后一个成功匹配的组对应的字符串. |