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などはよく出てくるので、覚えておきたいと思いまとめました。ここまで読んでいただきありがとうございました。