LoginSignup
1269
1123

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-08-23

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
1269
1123
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1269
1123