''と""と%Qと%qの違い
''と""と%Qと%qの違い
今更ですが、''と""の違いを良くわからずにここまで来てしまっていたので
きちんと勉強してみました。
Rubyでは文字列をあらわすとき
str = "hogehoge"
str = 'hogehoge'
ともあわらわすことができますが
この違いはいったいどうなっているのか。
簡単に表現すると
'' :シンプルな文字列表現
"" :高機能な文字列表現
となるそうです。
''は基本的に入力された文字列をそのまま表現します。
これに対して""では次のようなことが可能です。
(1)「/n」を改行コードとして解釈してくれる。
(2)「#{}」の中身をRubyの変数として解釈してくれる。
moji = "ほげ"
puts "文字の中身は#{moji}"
↓
文字の中身はほげ
という違いがあります。
基本的には「""」のほうが便利ですが、それなりにオーバヘッドがかかると思われるので
用途に応じて利用すると良いと思います。
さらに、文字列の中で「"」「'」を利用したい時には
「/"」「/'」とすることで表現できます。
puts "/"も使える"
↓
"も使える
しかし、「/」をつけるのも面倒なときには
「%Q」「%q」を使うと良いと思います。
puts %Q{"も使える}
↓
"も使える
となります。注意点としては「%Q」「%q」ともに
「{}」か「||」で範囲を指定します。
なお、「%Q」は機能的に「""」に「%q」は機能的に「''」に対応します。