【Ruby】文字列リテラルのダブルクォートとシングルクォートの違いについて
はじめに
せっかく調べたのに忘れてしまうため、メモを残しておく。
今回は、メソッドの引数に関することで
文字列リテラルのダブルクォートとシングルクォートの違い
を調べました。
環境
前提条件
- irbかPryが動作すること
やり方
文字列リテラルのダブルクォートとシングルクォート
実行
[1] pry(main)> # ダブルクォート [2] pry(main)> # ・バックスラッシュ記法と式展開が有効になる [3] pry(main)> str1 = "式展開も試してみます" => "式展開も試してみます" [4] pry(main)> puts "ダブルクォートのサンプル文字列です\n\nそして、#{str1}" ダブルクォートのサンプル文字列です そして、式展開も試してみます => nil [5] pry(main)> [6] pry(main)> # 文字列内でダブルクォートを使いたい場合、エスケープ文字を入れる [7] pry(main)> # ※「サンプル文字」をダブルクォートで括ってみる [8] pry(main)> puts "ダブルクォートの\"サンプル文字列\"です\n\nそして、#{str1}" ダブルクォートの"サンプル文字列"です そして、式展開も試してみます => nil [9] pry(main)> [10] pry(main)> # シングルクォート [11] pry(main)> # ・\\ (バックスラッシュそのもの)と \' (シングルクォート) を覗いて、文字列の中身の解釈しない [12] pry(main)> str2 = "式展開されないことを確認します" => "式展開されないことを確認します" [13] pry(main)> puts 'シングルクォートのサンプル文字列です\n\nそして、#{str2}' シングルクォートのサンプル文字列です\n\nそして、#{str2} => nil [14] pry(main)> [15] pry(main)> # シングルクォートの場合、中身の会社はしないのでエスケープ文字を入れなくてもそのまま表示される [16] pry(main)> puts 'シングルクォートの"サンプル文字列"です\n\nそして、#{str2}' シングルクォートの"サンプル文字列"です\n\nそして、#{str2} => nil [17] pry(main)>
まとめ
ダブルクォートとシングルクォートの違いに気づかず、シングルクォートで式展開を書いてしまっていて
なぜ展開されない?と数分考え込んでしまったので、簡単ですがまとめみました。
基本、ダブルクォートを使うのが良さそうなのでこちらを使っていきます。