Rubyの%記法まとめ。
以下の例では%の後に全て「()」記号を使っているが、他の記号でも代替可能。自分が好きなものを使って問題ない。
1. %、%Q
ダブルクオートで囲う場合と同等。
シングルクオートやダブルクオートのエスケープが不要になる。
後述の%q()と違い、変数・定数の展開もできる。
str = %(Programming language "Ruby")
puts str
# => Programming language "Ruby"
ruby = "Ruby"
str2 = %(Programming language "#{ruby}")
puts str2
# => Programming language "Ruby"
2. %q
シングルクオートで囲う場合と同等。
シングルクオートなので、変数や定数の展開はされない。
ruby = "Ruby"
str = %q(Programming language "#{ruby}")
puts str
# => Programming language "#{ruby}"
3. %w
配列を作る。配列の要素はスペース区切りで指定する。
式の展開はされない。
array = %w(one two three four)
p array
# => ["one", "two", "three", "four"]
4. %W
配列を作る。%w()と違い、式の展開がされる。
ruby = 'Ruby'
PYTHON = 'Python'
array = %W(#{ruby} #{PYTHON} PHP)
p array
# => ["Ruby", "Python", "PHP"]
5. %i
要素がシンボルの配列を作る。
array = %i(Ruby Python PHP)
p array
# => [:Ruby, :Python, :PHP]
6. %I
要素がシンボルの配列を作る。%i()と違い、式の展開がされる。
ruby = 'Ruby'
PYTHON = 'Python'
array = %I(#{ruby} #{PYTHON} PHP)
p array
# => [:Ruby, :Python, :PHP]
7. %x
コマンド出力を行う。バッククオートで囲った場合と同等。
res = %x(date) # dateコマンドの実行
puts res
# => Sat Aug 23 23:27:01 JST 2014
8. %s
シンボル。式の展開はされない。
sym = %s(Ruby)
p sym
# => :Ruby