その他

【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
酒井 駿
名古屋工業大学大学院卒業後、豊田合成(株)で品質管理を経験し、その後スタートアップ・マネーフォワードを経て、2024年11月に株式会社EGGHEAD創業。 製造業とエンジニアリング、両方の現場の知見を活かし、製造業における生成AIを活用した業務改善やシステム開発を支援します。