Rubyで変数展開をする方法

Rubyで変数展開をする方法

Rubyで変数展開を行う方法について詳しく説明します。
変数展開は、文字列内に変数の値を埋め込む技術です。
Rubyでは主に2つの方法で変数展開を行うことができます: ダブルクォーテーションで囲まれた文字列と、文字列補間を用いる方法です。

ダブルクォーテーションでの変数展開

Rubyでは、ダブルクォーテーションで囲まれた文字列内で変数展開を行うことができます。
例えば、次のようなコードがあります。

name = "Alice"
greeting = "Hello, #{name}!"
puts greeting

このコードでは、#{name}という部分が変数展開のための構文です。
#{}の中に変数や式を記述することで、その値が文字列内に埋め込まれます。
この例では、greetingに「Hello, Alice!」という文字列が代入され、putsメソッドによって出力されます。

式の展開

#{}内には単なる変数だけでなく、Rubyの式を記述することもできます。
次の例では、式の結果を文字列内に展開しています。

number1 = 10
number2 = 20
result = "The sum of #{number1} and #{number2} is #{number1 + number2}."
puts result

このコードでは、#{number1 + number2}という部分が計算された結果、30が文字列に埋め込まれます。
最終的には「The sum of 10 and 20 is 30.」という文字列が出力されます。

シングルクォーテーションと変数展開

シングルクォーテーションで囲まれた文字列内では、変数展開は行われません。
シングルクォーテーションで囲むと、文字列はリテラルとして扱われ、そのまま出力されます。
次の例を見てみましょう。

name = "Alice"
greeting = 'Hello, #{name}!'
puts greeting

このコードでは、greetingには「Hello, #{name}!」という文字列がそのまま代入され、変数展開は行われません。
出力結果は「Hello, #{name}!」です。

変数展開とメソッド呼び出し

#{}内でメソッド呼び出しも可能です。
例えば、次のように記述できます。

name = "Alice"
greeting = "Hello, #{name.upcase}!"
puts greeting

このコードでは、name.upcaseメソッドが呼び出され、nameの値が大文字に変換されてから文字列内に埋め込まれます。
出力結果は「Hello, ALICE!」です。

多行文字列と変数展開

多行文字列(ヒアドキュメント)でも変数展開を行うことができます。
以下にその例を示します。

name = "Alice"
message = <<-TEXT
Hello, #{name}!
Welcome to the Ruby world.
TEXT
puts message

このコードでは、<<-TEXTで始まり、TEXTで終わる多行文字列が使用されています。
#{name}の部分は変数展開され、出力結果は以下のようになります。

Hello, Alice!
Welcome to the Ruby world.

結論

Rubyでは、ダブルクォーテーションで囲まれた文字列内で変数展開を行うことができます。
シングルクォーテーションでは変数展開は行われませんが、ダブルクォーテーションを使用することで、変数の値や式の結果を文字列内に埋め込むことができます。
これにより、動的に生成される文字列を扱う際に非常に便利です。