🚶
いまさら聞けないRubyの文字列リテラル、シングルクォートとダブルクオートの違い
今回は、Rubyのシングルクォートとダブルクオートの違いについて解説していきます。
かなり初心者向けの内容となっておりますが、中級者以上の方も基礎の確認ということで読んでいただければと思います。
シングルクォート'
入力した文字がそのまま表示される。文字列のエスケープなどを一切行わない。
改行文字が含まれる場合
puts 'hoge\nfuga'
実行結果
hoge\nfuga
変数埋め込みが含まれる場合
str='world'
puts 'Hello,#{str}'
実行結果
Hello,#{str}
ダブルクオート"
ダブルクォートで囲った文字列では特殊文字が適用され、変数展開が有効になります
改行文字が含まれる場合
puts "hoge\nfuga"
実行結果
hoge
fuga
改行文字をエスケープしたものが含まれる場合
puts "hoge\\nfuga"
実行結果
hoge\nfuga
変数埋め込みが含まれる場合
str='World'
"Hello,#{str}"
実行結果
Hello,World
ちなみに、Rubyのソースコードの規約チェックツール「Rubocop」のデフォルト設定では、シングルクォートで書くべき箇所をダブルクオートで書くと警告が出ます。
このあたりは、参画しているプロジェクトのコーディング規約に従ったほうがよさそうです。
Discussion