Ruby勉強

インターネットの企画職な人がプログラミングを勉強するブログ

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....