Webエンジニアへの転職を目指して、現在Ruby、Railsを学習中。

【Ruby】%(パーセント)記法を覚える

はじめに

Rubyのコードを読んでいてたまに出てくる「%記法」(パーセント記法)について、毎回調べなくて良いように、簡単にまとめたいと思います。

記法 意味 式展開
%q シングルクウォート文字列 ×
%、%Q ダブルクォート文字列
%w 文字列の配列 ×
%W 文字列の配列
%i シンボルの配列 ×
%I シンボルの配列
%s シンボル ×
%x コマンド出力 -


%q

シングルクウォート文字列
式展開されない。

language = 'Ruby'

puts %q(#{language} is fun)    # => #{language} is fun


%、%Q

ダブルクォート文字列
式展開される。

language = 'Ruby'

puts %(#{language} is fun)    # => Ruby is fun

puts %Q(#{language} is fun)  # => Ruby is fun


%w

配列
要素が文字列で、要素間は空白区切り。式展開されない

language = 'Ruby'

%w(#{language} Java Python)    # => ["\#{language}", "Java", "Python"]


%W

配列
要素が文字列で、要素間は空白区切り。式展開される

language = 'Ruby'

%W(#{language} Java Python)    # => ["Ruby", "Java", "Python"]


%i

配列
要素がシンボルで、要素間は空白区切り。式展開されない

language = 'Ruby'

%i(#{language} Java Python)    # => [:"\#{language}", :Java, :Python]


%I

配列
要素がシンボルで、要素間は空白区切り。式展開される

language = 'Ruby'

%I(#{language} Java Python)    # => [:Ruby, :Java, :Python]


%s

シンボル。 式展開されない。

%s(Ruby)    # => :Ruby


%x

コマンド出力。 バッククウォート(`)で囲む場合と同じ。

puts %x(date)  # => 2019年 1月16日 水曜日 12時20分10秒 JST