パーセント記法
文字列リテラル、コマンド出力、正規表現リテラル、配列式、シンボルでは、%
で始まる形式の記法を用いることができる。
%
の後ろの区切り文字には、任意の非英数字を使うことができる。(例:!
, |
, ?
, []
, ()
, {}
)
%
, %Q
: ダブルクォート文字列
- シングルクオートやダブルクオートのエスケープが不要になる。
- 後述の%q()と違い、変数・定数の展開もできる。
str = %[Programming language "Ruby"]
puts str # => Programming language "Ruby"
ruby = "Ruby"
str2 = %[Programming language "#{ruby}"]
puts str2 # => Programming language "Ruby"
%q
: シングルクォート文字列
- 変数や定数は展開されない。
%W
, %w
: 文字列配列
- 要素が文字列の配列を作成する。
%W
は式展開されるが、%w
は式展開されない。
ruby = 'Ruby'
PYTHON = 'Python'
array = %W[#{ruby} #{PYTHON} PHP]
p array # => ["Ruby", "Python", "PHP"]
array = %w[#{ruby} #{PYTHON} PHP]
p array # => ["\#{ruby}", "\#{PYTHON}", "PHP"]
%I
, %i
: シンボル配列
- 要素がシンボルの配列を作成する。
%I
は式展開されるが、%i
は式展開されない。
ruby = 'Ruby'
PYTHON = 'Python'
array = %I[#{ruby} #{PYTHON} PHP]
p array # => [:Ruby, :Python, :PHP]
array = %i[#{ruby} #{PYTHON} PHP]
p array # => [:"\#{ruby}", :"\#{PYTHON}", :PHP]
%x
: コマンド出力
- コマンド出力する。バッククウォートで囲った場合と同等。
%s
: シンボル
- 式展開はされない。
%r
: 正規表現
Regexp
インスタンスを生成する。