在“The D Programming Language”一书中,我看到以下内容:
通常
case
表达式是编译时常量,但 D 也允许 variables,并保证词法顺序评估直到第一个匹配。
代码:
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");
}
}
结果:
错误:大小写必须是字符串或整数常量,而不是 foo
怎么了?
PS。我使用 DMD32 D 编译器 v2.053