【Ruby】%記法(パーセント記法)
文字列リテラル、コマンド出力、正規表現リテラル、配列式、シンボルでは、
%で始まる形式の記法を用いることができます。
※ %の後には丸括弧(())や波括弧({})などの記号が使えます。
%、%Q
ダブルクォーテーションで囲んだ場合と同じです。
シングルクォーテーションやダブルクォーテーションでのエスケープが不要になります。
後述の%q()と違って、変数・定数の展開もできます。
str = %(My Name is "Yamada")
puts str
# => My Name is "Yamada"
name = "Yamada"
str2 = %(My Name is "#{name}")
puts str2
# => My Name is "Yamada"
%q
シングルクォーテーションで囲んだ場合と同じです。
シングルクォーテーションなので、変数や定数の展開はされません。
name = "Yamada"
str = %q(Programming language "#{name}")
puts str
# => Programming language "#{name}"
%w
配列を作りたい時に使います。配列の要素は半角スペースで区切ります。
式の展開はされません。
array = %w(one two three four)
p array
# => ["one", "two", "three", "four"]
%W
配列を作りたい時に使います。%w()と違って、式の展開がされます。
ruby = 'Ruby'
Python = 'Python'
array = %W(#{ruby} #{Python} PHP)
p array
# => ["Ruby", "Python", "PHP"]
%i
要素がシンボルの配列を作りたい時に使います。
array = %i(Ruby Python PHP)
p array
# => [:Ruby, :Python, :PHP]
%I
要素がシンボルの配列を作りたい時に使います。
%i()と違って、式の展開がされます。
ruby = 'Ruby'
python = 'Python'
array = %I(#{ruby} #{python} PHP)
p array
# => [:Ruby, :Python, :PHP]
%x
コマンド出力をしたい時に使います。
バッククォーテーションで囲んだ場合と同じです。
res = %x(date) # dateコマンドの実行
puts res
# => 2015年 9月 5日 金曜日 12時34分56秒 JST
%s
シンボル。式の展開はされません。
sym = %s(Ruby)
p sym
# => :Ruby
%r
正規表現。
%r(^http://)
# => /^http:\/\//