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!'"
関連: