Rubyの%w %s %i %Qなど%記法(パーセント記法)一覧を確認

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つですが、意外と多かったですね。
無理して使う必要はないですが、コードリーディングでは必要なので頭の片隅においときたいですね。

このエントリーをはてなブックマークに追加