スキップしてメイン コンテンツに移動

Ruby文字列:クォートとエスケ

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

これらのテクニックを組み合わせることで、柔軟で読みやすいコードを書けます。

この記事はAIによって作成されました。

コメント