Ruby文字列:クォートとエスケ
文字列基礎とクォート
Ruby初心者が最初に直面するのは文字列の扱いです。文字列は '(シングルクォート)と "(ダブルクォート)で囲むことができます。シングルクォートは文字列内の変数やエスケープシーケンスを展開せず、文字通りの文字列を保持します。一方、ダブルクォートは \n や \t のようなエスケープ文字、また #{変数} のような文字列補間を許可します。
例として、次のように書くと:
puts 'Hello\nWorld' # 文字通りの改行文字を含む
puts "Hello\nWorld" # 改行が実際に行われる
この違いを理解することで、意図しない文字列の変化を防げます。
エスケープとバックスラッシュ記法
Rubyではバックスラッシュ記法を使って特殊文字をエスケープします。例えば、ダブルクォート内で " を文字として使いたい場合は \" と書きます。逆に、シングルクォート内で ' を使いたいときは \' とします。
また、改行やタブ、Unicode文字などもエスケープシーケンスで表現できます。以下は代表的な例です:
puts "Line1\nLine2" # 改行
puts "Tab\tSeparated" # タブ
puts "Unicode: \u{1F600}" # 😀
エスケープは文字列の可読性と安全性を保つために不可欠です。
ヒアドキュメント
長い文字列や複数行のテキストを扱うとき、ヒアドキュメント(heredoc)を使うと便利です。ヒアドキュメントは << とラベルを付けて開始し、同じラベルで終了します。ダブルクォート付きのヒアドキュメントは文字列補間とエスケープを有効にし、シングルクォート付きは無効にします。
sql = <<-SQL
SELECT * FROM users
WHERE name = '#{name}'
SQL
puts sql
上記では #{name} が展開されます。シングルクォート付きの場合は展開されません。
文字列結合と繰り返し
文字列結合は + 演算子や << メソッドで行えます。例えば:
greeting = "Hello" + " " + "World"
puts greeting # Hello World
Rubyでは * 演算子を使って文字列を繰り返すこともできます。これは文字列の繰り返しに便利です。
puts "ha" * 3 # hahaha
さらに、配列の join メソッドを使うと、複数の文字列を区切り文字で結合できます。
words = ["Ruby", "is", "fun"]
puts words.join(" ") # Ruby is fun
これらのテクニックを組み合わせることで、柔軟で読みやすいコードを書けます。
コメント
コメントを投稿