[Ruby] %記法で文字列を作る
Rubyでは、%q記法を使って文字列を簡単に作ることができる。
'や"などの特殊文字をエスケープするのが面倒なときによい。
%q: 'や"をエスケープなしで記述できる
p moji = %q(He said, 'I want more muscle!') => "He said, 'I want more muscle!'"
用途によっては注意が必要。勝手にエスケープされるので、改行文字を改行と認識しなくなることも。
str = %q(blue 青 white 白\nred 赤) => "blue 青 white 白\\nred 赤" # 勝手にエスケープされる
%Qなら改行として認識される。
str = %Q(blue 青 white 白\nred 赤) => "blue 青 white 白\nred 赤"
%qでは式展開が使えない。
str = "He said, 'I want more muscle!'" p %q(#{str}) => "\#{str}"
%Q: 式展開が使える
str = "He said, 'I want more muscle!'" p %Q(#{str}) => "He said, 'I want more muscle!'"
関連: