Rubyで%記法(パーセント記法)を使う

  • 549
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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