文字列補間
テンプレートリテラルなどで変数や式の値を文字列に埋め込む処理。
文字列補間 (String Interpolation) とは、文字列リテラルの中に変数や式の値を埋め込む機能です。文字列結合 (+ 演算子による連結) よりも可読性が高く、現代のプログラミング言語で広く採用されています。動的なメッセージの生成、テンプレートエンジンの基盤、ログ出力のフォーマットなど、テキストを動的に構築するあらゆる場面で活用されます。
JavaScript ではテンプレートリテラル (`Hello, ${name}!`) を使って文字列補間を行います。バッククォートで囲み、${} 内に任意の式を記述できます。単純な変数参照だけでなく、関数呼び出しや三項演算子、算術演算なども埋め込めるため、複雑な文字列の組み立てが 1 行で完結します。さらにタグ付きテンプレートリテラルを使えば、埋め込み値に対してカスタム処理 (HTML エスケープや国際化など) を適用することも可能です。JavaScript ES6 入門の書籍でテンプレートリテラルの活用法を学べます。
Python では f-string (f"Hello, {name}!") が Python 3.6 以降の標準的な補間手法です。それ以前は str.format() や % 演算子が使われていました。Ruby では "Hello, #{name}!"、C# では $"Hello, {name}!"、Kotlin では "Hello, $name!" と、言語ごとに構文は異なりますが、変数を文字列内に直接埋め込むという概念は共通しています。Swift の "\(variable)" や PHP の "$variable" も同様の機能を提供します。
文字列補間と文字列結合の使い分けは、コードの可読性と保守性に直結します。たとえば "名前: " + firstName + " " + lastName + " (年齢: " + age + ")" という結合は、`名前: ${firstName} ${lastName} (年齢: ${age})` と補間で書いた方が意図が明確です。特に多言語対応 (i18n) のテンプレートでは、プレースホルダーの位置を言語ごとに変更できる補間方式が圧倒的に有利です。
文字列補間はセキュリティ上の注意も必要です。ユーザー入力をそのまま補間すると SQL インジェクションや XSS の原因になるため、適切なエスケープ処理やパラメータ化クエリの使用が不可欠です。テンプレートエンジン (EJS、Jinja2、Handlebars など) は自動エスケープ機能を備えていることが多いですが、raw や safe フィルターの誤用には注意が必要です。セキュリティプログラミングの書籍で安全な文字列処理を学べます。
文字数カウントの観点では、補間後の文字列の長さは埋め込まれた値の文字数に依存します。数値を補間する場合、toString() の結果の桁数がそのまま文字数に反映されます。たとえば ${price} に 1000 が入れば 4 文字、100000 なら 6 文字となり、固定長のフォーマットが必要な場面では padStart() や toFixed() との組み合わせが有効です。