Ruby でのシングルクオートとダブルクオート
今回はRubyにおいていのシングルクオートとダブルクオートをみていきましょう。
それに加えて、改行文字(\n)、と式展開(#{})、エスケープ処理についてもみていきます
シングルクオートとダブルクオート
Rubyでは文字列を作る方法がいくつかあります。
ですが、最も一般的なのはシングルクオート(')、またはダブルクオート(")で囲む方法です。
'これは文字列です。'
"これも文字列です。"
しかし、シングルクオートとダブルクオートで挙動が異なる点があります。詳しくみていきましょう。
改行文字(\n)
文字列中に改行文字(\n)を埋め込みたい場合は、ダブルクオートで囲む必要があります。
(改行やバックスラッシュの有無がわかりやすくなるよう、putsメソッドを使っています)
シングルクオートの場合と比較してみていきましょう。
puts "こんにちは\nさようなら"
puts 'こんにちは\nさようなら'
これをターミナルでみていきましょう!
% ruby {ファイル名}
こんにちは
さようなら
こんにちは\nさようなら
このようにダブルクオートで囲むと\nが改行文字として機能し、
シングルクオートで囲むと\nはただの文字列になります!
うまく使い分けていきましょう!
式展開(#{})
ダブルクオートを使うと式展開が使えます。
式展開を使う場合は#{}の中に変数や式を書きます。
こうすると、変数の値や式の結果が文字列の中に埋め込まれます。
こちらもシングルクオートの場合も確認していきます。
name = 'Alice'
puts "Hello, #{name}!"
puts 'Hello, #{name}!'
ターミナルでみていきましょう!
% ruby {ファイル名}
Hello, Alice!
Hello, #{name}!
このようになります。ダブルクオートの場合はうまく変換されてますね!
エスケープ処理
エスケープ処理とは、このように特別な意味を持つ文字の機能を打ち消し、ただの文字として扱えるようにすることです。
たとえば、シングルクオートやダブルクオートを文字列の中に使用したい場合に使用します。
その場合、手前にバックスラッシュを付けて処理します。
例をみていきましょう!
puts 'He said, "Don\'t speak."'
puts "He said, \"Don't speak.\""
どうでしょうか
He said, "Don't speak."
He said, "Don't speak."
うまくいってますね!
さいごに
今回は、Ruby でのシングルクオートとダブルクオートをみてきました。
いざ、改行文字や式展開がでてきても、うまく対応できるようにしていきましょう!
Discussion