「The D Programming Language」の本には、次のように書かれています。
通常、
case
式はコンパイル時の定数ですが、D では 変数も使用でき、最初の一致まで字句順序の評価が保証されます。
コード:
void main()
{
string foo = "foo";
string bar = "bar";
string mrX;
switch (mrX)
{
case foo:
writeln(foo);
break;
case bar:
writeln(bar);
break;
default:
writeln("who knows");
}
}
結果:
エラー: case は、foo ではなく、文字列または整数定数でなければなりません
どうしたの?
PS。DMD32 D コンパイラ v2.053 を使用しています