🌊

Ruby でのシングルクオートとダブルクオート

2024/01/20に公開

今回は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 でのシングルクオートとダブルクオートをみてきました。
いざ、改行文字や式展開がでてきても、うまく対応できるようにしていきましょう!

参考文献

プロを目指す人のためのRuby入門 改訂2版

Discussion