3.3 文字列リテラル
文字列リテラルとは文字列の値そのもののことで、以下のようなシングルクォーテーションやダブルクォーテーションで囲まれたもののことである。
"Ruby"
'Ruby'
C言語ではシングルクォーテーションは文字にのみ使っていたので違和感があるかもしれないが、Rubyではどちらも文字列リテラルを生成するための表現である。しかし、この二つの表現方法には違いがある。下の例を見てみよう。
irb(main):001:0> message = "Ruby"
=> "Ruby"
irb(main):002:0> "#{message} is a powerful language."
=> "Ruby is a powerful language."
irb(main):003:0> '#{message} is a powerful language.'
=> "\#{message} is a powerful language."
この例から分かるように、ダブルクォーテーションを使った文字列リテラルは変数の埋め込み(Strings interpolation)ができるのに対して、シングルクォーテーションを使っている方はプログラマ書いた文字列をそのまま表示している。これは、シングルクォーテーションで囲った文字列リテラルは文字列をエスケープせずにそのままの値を持つという特徴からくる違いである。このため、途中で改行しようとして次のようなコードを書いても思った通りに動作しない。
puts 'a\nb' #=> a\nb
文字列リテラルを使用したコードを書く際には注意しよう。