【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:\/\//

Ruby2入門

Posted by 管理人