Ruby組み込み変数 - Silver/Gold試験対策
`$'が頭につけば、通常はグローバル変数。 その中でも特殊変数と呼ばれているものは組み込み定数 Kernel配下の特集変数がそれにあたる
グローバル変数と銘打っていても、特殊変数は、 グローバルに値を共有するとは限らない
$!
例外を記録する変数
begin hoge rescue puts "Oh, #{$!}" #=> Oh, undefined local variable or method `hoge' end puts $! #=> 空
覚え方。!は想定外のびっくりだから
$"
require されているものをが代入されている
$ ruby -e 'p $"' #=> ["enumerator.so", "thread.rb", ...
$$
プロセスIDを表示する
$ ruby -e 'p $$' #=> *数字が表示される
$&
現在のスコープ内において最後に正規表現でマッチした文字列
$ ruby -e '/\d+/ =~ "a123a"; p $&' #=> "123"
$~
現在のスコープ内において最後に正規表現でマッチした場合の、マッチデータオブジェクト
$ ruby -e '/\d+/ =~ "a123a"; p $~' #=> #<MatchData "123">
$+
現在のスコープ内において正規表現でマッチした場合の、最後の丸括弧のマッチした文字列
$ ruby -e '/(\d+)abc(\d+)/ =~ "a123abc123433ncvcv123"; p $+' #=> "123433"
$`
現在のスコープ内において正規表現でマッチした場合の、手前の文字列
$ ruby -e '/\d+/ =~ "a123d"; p $`' #=> "a"
$'
現在のスコープ内において正規表現でマッチした場合の、手前の文字列
$ ruby -e "/\d+/ =~ 'a123d'; p $'" #=> "d"
$1, $2
現在のスコープ内において正規表現でマッチした場合の、丸括弧のマッチした文字列。番号順となっている
$ ruby -e '/(\d+)abc(\d+)/ =~ "a123abc123433ncvcv3333"; p $1, $2' #=> "123", "123433"
$*
引数を出力するARGVの別名
$ ruby -e "p $*" foo bar baz #=> ["foo", "bar", "baz"]
$-F, $;
区切りを定める文字を設定。
$; = "1" p "fug1adva1sd1".split
$-I, $: $LOAD+PATH
p $-I #=> ["/usr/local/Cellar.... sleep 3 p $: #=> ["/usr/local/Cellar.... sleep 3 p $LOAD_PATH #=> ["/usr/local/Cellar....