プログラムはできるだけシンプルに分かりやすく記述することで、バグや認識違いを少なくすることができます。
Rubyのパーセント記法は、配列や正規表現の作成をシンプルに記述することができて、分かりやすいプログラムを作る手法の1つです。
本記事では、Rubyのパーセント記法について解説します。
記事内に記載しているプログラムは、Ruby2.7.1を使って動作確認をしています。
Rubyのパーセント記法で分かりやすいプログラムにする方法
Rubyのパーセント記法について、以下の内容を解説します。
- パーセント記法とは
- パーセント記法で文字列を作る
- パーセント記法で配列を作る
- パーセント記法でシンボルを作る
- パーセント記法で正規表現を作る
- パーセント記法でコマンドを実行する
パーセント記法とは
Rubyでは%で始まる形式の記法(パーセント記法)を用いることができます。
パーセント記法を用いることで、文字列や正規表現に必要なエスケープが不要となり、分かりやすく記述することができます。
また、文字列の配列やシンボルの配列を簡単に作成することができます。
パーセント記法では、%の後に続く記号部分には任意の非英数字を使うことできますが、括弧が使われることが多いので、本記事でも括弧を使います。
パーセント記法で文字列を作る
パーセント記法で文字列を作るには、%のみ、%Q、%q を使います。
%のみと%Qは同じ意味です。
変数の展開を行うこともできます。
s = %(Hello Ruby!!) puts s # -> Hello Ruby!! lang = %(Ruby) s = %Q(Hello #{lang}!!) puts s # -> Hello Ruby!!
%q では変数の展開を行うことが出来ません。
s = %q(Hello Ruby!!) puts s # -> Hello Ruby!! lang = %(Ruby) s = %q(Hello #{lang}!!) puts s # -> Hello #{lang}!!
パーセント記法で配列を作る
パーセント記法で文字列の配列を作るには、%W、%w を使います。
%Wは変数の展開を行うことが出来ますが、%wは出来ません。
ruby = "Ruby" arr = %W(#{ruby} Python Java) p arr # -> ["Ruby", "Python", "Java"] arr = %w(Ruby Python Java) p arr # -> ["Ruby", "Python", "Java"] arr = %w(#{ruby} Python Java) p arr # -> ["\#{ruby}", "Python", "Java"]
パーセント記法でシンボルを作る
パーセント記法でシンボルを作るには、%s を使います。
変数の展開は行われません。
symbol = %s(Ruby) p symbol # -> :Ruby
シンボルの配列を作成するには、%I、%i を使います。
%Iは変数の展開を行うことが出来ますが、%iは出来ません。
ruby = "Ruby" arr = %I(#{ruby} Python Java) p arr # -> [:Ruby, :Python, :Java] arr = %i(Ruby Python Java) p arr # -> [:Ruby, :Python, :Java] arr = %i(#{ruby} Python Java) p arr # -> [:"\#{ruby}", :Python, :Java]
パーセント記法で正規表現を作る
パーセント記法で正規表現を作成するには、%r を使います。
通常スラッシュで作る正規表現と同じで、変数展開や末尾にフラグを追加することもできます。
s = "Hello Ruby!!" regex = %r(Ruby) p regex =~ s # -> 6
パーセント記法でコマンドを実行する
パーセント記法でコマンドを実行するには、%x を使います。
通常バッククォートで実行するのと同じです。
変数展開を行うことも出来ますが、コマンドインジェクション等のセキュリティには注意が必要です。
result = %x(date) puts result # -> 2020年 12月 31日 木曜日 14:02:52 JST
まとめ
Rubyのパーセント記法についてまとめると、以下となります。
- パーセント記法を用いることで、文字列や正規表現に必要なエスケープが不要となり、分かりやすく記述することができる。
- 文字列やシンボル、それらの配列などを作成することができる。
- 正規表現の作成やコマンドを実行するもできる。
シンプルなプログラムを作ることが出来るので、ぜひ使ってみてはいかがでしょうか。
今回は、Rubyのパーセント記法で分かりやすいプログラムにする方法について解説しました。
以上、参考になれば幸いです。
コメント