内建变量

内建变量是全局变量的一种,但是其中的值并非只限于全局使用。

下面是以作用范围不同区分的一些内建变量例子:

区域范围

$~

在当前的作用域之内,上一次所匹配成功的信息(MatchData)。设置此变量会改变 $&、$1 ... $9 等变量的值。

相当于 Regexp.last_match

$&

在当前的作用域之内,上一次所匹配成功的字符串,若匹配失败,此变量之值则为 nil 。

相当于 Regexp.last_match[0]

$1
$2
$3 ...

分别对应上次匹配成功时第 n 个括号匹配的值,若没有对应括号则为 nil 。

相当于 Regexp.last_match[1], Regexp.last_match[2], ...

全局范围

$!

最近抛出的异常的信息。由 raise 进行设置。

$DEBUG

调试模式的标志。