電気ウナギ的○○

About Home

VB.NET での文字列補間

shinoda (2020年9月17日 12:30)
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 使いの人」から見たら、「何をいまさら」なんだろうけど、俺のように色々な開発言語の現場を流れ歩き、ひとつの言語を突き詰めて勉強する機会がないと、例えば & で連結するなど(不格好だが)他の手段を知っていればそれを使うし、なかなか知識のアップデートができないのよね。これもそのひとつ。

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

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/5706

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE