%記法
Rubyには「%記法」と呼ばれる文字列リテラルや正規表現リテラルを記述する別の記法があります。名前は聞いたことあったけど使ったことはなかったのですが、説明を読んでみると使いこなせばスマートな記述ができそう。ということで、便利そうな使い道をまとめて見ます。
なお、%記法は「%<文字><区切り文字><リテラル><区切り文字>」の形式で書き、「<区切り文字>」の部分には改行を含めた任意の非英数字を使うことができます。以下の例では個人的になんとなくしっくりくるという理由で「[」「]」を使っています。
# 式展開を有効にしつつ、「"」をたくさん使いたい puts %["a"b"#{1}"] # 式展開を無効にしつつ、「'」をたくさん使いたい puts %q['a'b'#{1}'] # 正規表現で「/」をたくさん使いたい p "a//b//c//d".split( %r[//] ) # 文字列の配列をさくっと作る p %W[ a b c d #{1} ] # 文字列の配列をさくっと作る(式展開なし) p %w[ a b c d #{1} ]
実行結果です。
"a"b"1" 'a'b'#{1}' ["a", "b", "c", "d"] ["a", "b", "c", "d", "1"] ["a", "b", "c", "d", "\#{1}"]