文字列の中に式を展開

広告

ダブルクオーテーションで囲まれた文字列(それに相当する文字列)の中には式を記述することが出来ます。式を文字列の中に記述するには次のように記述します。

#{式}

Rubyにおける「式」とは文字列や数値の他に、変数や配列、メソッド呼び出し、演算子式などが含まれます。プログラムの実行時に式が評価されてその結果が文字列の中に展開されます。(変数や演算子式などの詳細は別のページで詳しく見ていきます)。

例えば式に単に文字列を記述した場合で考えてみます。

print("名前は #{'伊藤'} です")

この場合は単に「"名前は 伊藤 です"」と記述した場合と同じです。

次に演算式を記述した場合です。

print("年齢は #{20 - 5} です")

この場合は単に「20-5」が実行時に計算されて、その結果である「15」が文字列の中に展開されます。結果として「年齢は 15 です」と言う文字列になります。

また良く利用されるのが式に変数を記述した場合です。

name = "東京"
print("出身は #{name} です")

この場合は変数に格納されている値が文字列の中に展開されます。結果として「出身は 東京 です」と言う文字列になります。

式展開を使用することで、文字列の連結などを行わなくても文字列の中に変数などを組み込む事が可能になります。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test5-1.rb

#! ruby -Ku
require "kconv"

print(Kconv.tosjis("名前は #{'伊藤'} です¥n"))
print(Kconv.tosjis("年齢は #{20 - 5} です¥n"))

name = "東京"
print(Kconv.tosjis("出身は #{name} です¥n"))

上記のプログラムを「test5-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

文字列の中に式を展開

ヒアドキュメント内の各行の先頭に空白などが含まれている場合は、その空白も含めた文字列となりますので注意して下さい。

( Written by Tatsuo Ikura )