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