VB.NET での文字列補間

VisualBasic は文字列補間(変数補間、変数置換)の機能がないので、ある文字リテラルの中に別の変数の値を埋め込もうとすると、

Dim day  As String = "13"
Dim text As String = "死の数字は" & day & "です"

のように、&(+ でもいいのか)で変数を連結してやる必要があったのだが、今のバージョンだと、

Import System.Text
Dim day  As String = "13"
Dim text As String = $"死の数字は{day}です"

のように、文字列内に変数を埋め込むことができる。
文字列を囲むダブルクオーテーションの前に、$(ダラーマーク)を置くことで変数を挿入できるようになる。(System.Text のインポートを忘れずに(笑))

他の言語(C, Perl, PHP, Python...)だと文字列補間はできて当たり前なので、どうにも VisualBasic が使いづらいと考える理由のひとつだったのだが、いつの間にか解決してたのね。

ちなみに Perl なら、

my $day  = "13";
my $text = "死の数字は$dayです";

である。

VB.NET で $ をつけ忘れたら文字列補間は使えないが、これは Perl で文字列をシングルクオーテーションで囲んでしまった場合と同じだ。

[VB.NET]
a = $"これは{b}です"
[Perl]
$a = "これは$bです";

上の二つは同じ意味(文字列補間可能)だし、

[VB.NET]
a = "これは{b}です"
[Perl]
$a = 'これは$bです';

は同じ意味だ。文字列補間はできない。

下の例だと、VB.NET では「これは{b}です」とそのまま出力されるし、Perlでも「これは$bです」とそのまま出力される。

「VB.NET 使いの人」から見たら、「何をいまさら」なんだろうけど、俺のように色々な開発言語の現場を流れ歩き、ひとつの言語を突き詰めて勉強する機会がないと、例えば & で連結するなど(不格好だが)他の手段を知っていればそれを使うし、なかなか知識のアップデートができないのよね。これもそのひとつ。

コーディング基準・規約などできちんと「可読性向上のため、補間文字列を積極的に使用する」などと明記されていれば気づくけど。

トラックバック(0)

このブログ記事を参照しているブログ一覧: VB.NET での文字列補間

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/5706

コメントする

このブログ記事について

このページは、shinodaが2020年9月17日 12:30に書いたブログ記事です。

ひとつ前のブログ記事は「トンコツ塩らーめんは、まあ、普通だった」です。

次のブログ記事は「サーバ証明書の更新をした」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら