閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

テンプレート文字列の記法

文字列の中に変数を入れたい、という時の言語毎の記法。すぐ忘れちゃうけど、最近のエディタはいい感じに色分けしてくれるのでやりやすくはなったかも。(はてなだと色の具合がいまいちですね…)

JavaScript

文字列をバッククォートで括り、変数は ${} で差し込む。

const variable = 'World';
const str = `Hello ${variable}`;

C#

ダブルクォートの前に$を付けて、変数は {} で差し込む。

var variable = "World";
var str = $"Hello {variable}";

C# 5.0以前の string.Format("Hello {0}", variable) の糖衣構文。

PHP

ダブルクォートで括り、変数はそのまま差し込める。

$variable = 'World';
$str = "Hello $variable";
$str = 'Hello $variable'; // シングルクォートだと変数展開されず、 'Hello $variable'になる

Python

ダブルクォートの前にfを付けて、変数は {} で差し込む。

variable = "World"
print(f"Hello {variable}")

print("Hello {}".format(variable)) の糖衣構文。

C++ 20

formatが標準に導入されるんですね。いま初めて知りました。

#include <format>
const auto variable = "World";
const auto str = std::format("Hello {}", variable);

formatといえば十数年前、boost::formatを一瞬使ったことがありましたが、あれはちょっとキモかったですね…。

#include <boost/format.hpp>
const auto variable = "World";
const auto str = boost::format("Hello %1%") % variable;

なんだかんだsstreamも馴染まないしsprintfになってしまってましたが、std::formatは良さそう。