🚶

いまさら聞けないRubyの文字列リテラル、シングルクォートとダブルクオートの違い

2021/01/05に公開

今回は、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