''と""と%Qと%qの違い

INDEX PAGE


''と""と%Qと%qの違い


今更ですが、''と""の違いを良くわからずにここまで来てしまっていたので
きちんと勉強してみました。

Rubyでは文字列をあらわすとき

str = "hogehoge"
str = 'hogehoge'

ともあわらわすことができますが
この違いはいったいどうなっているのか。

簡単に表現すると
'' :シンプルな文字列表現
"" :高機能な文字列表現
となるそうです。

''は基本的に入力された文字列をそのまま表現します。
これに対して""では次のようなことが可能です。

(1)「/n」を改行コードとして解釈してくれる。

puts "hoge/nhoge"

hoge
hoge

(2)「#{}」の中身をRubyの変数として解釈してくれる。

moji = "ほげ"
puts "文字の中身は#{moji}"

文字の中身はほげ

という違いがあります。
基本的には「""」のほうが便利ですが、それなりにオーバヘッドがかかると思われるので
用途に応じて利用すると良いと思います。

さらに、文字列の中で「"」「'」を利用したい時には
「/"」「/'」とすることで表現できます。

puts "/"も使える"

"も使える

しかし、「/」をつけるのも面倒なときには
「%Q」「%q」を使うと良いと思います。

puts %Q{"も使える}

"も使える

となります。注意点としては「%Q」「%q」ともに
「{}」か「||」で範囲を指定します。

なお、「%Q」は機能的に「""」に「%q」は機能的に「''」に対応します。



INDEX PAGE