Ruby

【Ruby】%(パーセント)記法まとめ

Rubyで%記法を書く機会が多々あり、その都度ググっているので自分でまとめていきたいと思います。こちらの記事を参考にしました。

%w

こちらは配列をつくります。式展開をすることはできません。

%w(foo bar baz)
=> ["foo", "bar", "baz"]

ちなみに( )の部分は[ ]でも{ }でも同じ結果になります。

%w[foo bar baz]
=> ["foo", "bar", "baz"]

%w{foo bar baz}
=> ["foo", "bar", "baz"]

%W

%wと同様に配列をつくりますが、こちらは式展開をすることができます。これから出てくる%記法も大文字の場合は式展開をすることができます。

foo = "Foo"
 %W(#{foo} bar baz)
=> ["Foo", "bar", "baz"]

%i

要素がシンボルの配列を作ることができます。

%i(foo bar baz)
=> [:foo, :bar, :baz]

%I

%Iと同様にシンボルの配列をつくりますが、こちらは式展開をすることができます。

foo = "Foo"
%I(#{foo} bar baz)
=> [:Foo, :bar, :baz]

%q

シングルクオーテーションで囲ったときと同様の結果になります。そのため、式展開はされません。

%q(foo bar baz)
=> "foo bar baz"

'foo bar baz'
=> "foo bar baz"

%q(#{foo} bar baz)
=> "\#{foo} bar baz"

%Q

ダブルクオーテーションで囲ったときと同様の結果になります。そのため、式展開をすることができます。

%Q(#{foo} bar baz)
=> "Foo bar baz"

 %(#{foo} bar baz)
=> "Foo bar baz"

%s

シンボルと同様の結果になります。ちなみに%Sはエラーになります。

%s(foo)
=> :foo

%S(#{foo})
(eval):2: unknown type of %string

さいごに

パーセント記法はRailsのコードを読んでいると特に%wなどはよく出てくるので、覚えておきたいと思いまとめました。ここまで読んでいただきありがとうございました。

ABOUT ME
sakai
東京在住の30歳。元々は車部品メーカーで働いていてましたが、プログラミングに興味を持ちスクールに通ってエンジニアになりました。 そこからベンチャー → メガベンチャー → 個人事業主になりました。 最近は生成 AI 関連の業務を中心にやっています。 ヒカルチャンネル(Youtube)とワンピースが大好きです!