Rubyの%w %s %i %Qなど%記法(パーセント記法)一覧を確認
Table of Contents
気づいたら忘れてる%記法(パーセント記法)について一覧を確認しました。 %wと%iぐらいしか使うこと少ないですが、他にも色々ありますね。
%記法(パーセント記法)の一覧
%記法 | 式展開 | 使用例 | 結果 |
---|---|---|---|
%w | ☓ | %w(foo bar baz) | [“foo”, “bar”, “baz”] |
%W | ◯ | %W(foo bar #{var }) |
[“foo”, “bar”, “baz”] |
% | ◯ | %(foo bar #{var }) |
“foo bar baz” |
%Q | ◯ | %(foo bar #{var }) |
“foo bar baz” |
%q | ☓ | %(foo bar baz) | “foo bar baz” |
%x | ◯ | %x(echo #{var }) |
“baz\n” |
%r | ◯ | %r(^#{var }$) =~ baz |
0 |
%s | ☓ | %s(foo_bar_baz) | :foo_bar_baz |
%i | ☓ | %i(foo bar baz) | [:foo, :bar, :baz] |
%I | ◯ | %I(foo bar #{var }) |
[:foo, :bar, :baz] |
※var
は変数でbaz
を代入してると仮定します。
%記法(パーセント記法)の区切りに改行を使う
区切り文字は空白文字(スペース)以外にも改行が使えます。
puts %w(
foo
bar
baz
).first # foo
%記法(パーセント記法)の囲い文字を変更する
%w()
や%w[]
など括弧でも囲えますが、任意の非英数字 を使うことができます。
ただし、%w,%W,%i,%Iは区切り文字に空白文字(スペース)と改行 を使うため、この2つは使えません。
また(]
のように始まりと終わり文字が異なるのは使えません。
%記法(パーセント記法)の要素に空白文字(スペース)を入れる
%w, %W, %i, %Iは空白区切りの要素がそれぞれ評価されます。
しかしひとつの要素に空白文字を入れたいケースがあります。
その場合 スペースの前に\(バックスラッシュ)を入れると一つの要素にできます。
%w(foo bar)
=> ["foo", "bar"]
%w(foo\ bar)
=> ["foo bar"]
バックスラッシュ記法が有効な%記法(パーセント記法)
一部の%記法(パーセント記法)はバックスラッシュ記法が有効です。
▼バックスラッシュ記法(\tなど)の詳細はこちらになります。
Rubyのバックスラッシュ記法(\t \n \sなど)一覧を確認
バックスラッシュ記法が使える%記法(パーセント記法)は下記になります。
- %W
- %I
Rubyの%w %i以外にも色々ある%記法(パーセント記法)
よく使うのは2つ3つですが、意外と多かったですね。
無理して使う必要はないですが、コードリーディングでは必要なので頭の片隅においときたいですね。