Switch ignores case (?)
Chris via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Nov 23 08:28:49 PST 2016
Only one of the two cases is considered. What am I doing wrong?
`
import std.array;
import std.conv;
import std.stdio;
void main()
{
auto tokens = to!(dchar[][])(["D"d, "’"d, "Addario"d, "'"d]);
// Or use this below:
//~ dstring[] tokens = ["D"d, "’"d, "Addario"d, "'"d];
while (!tokens.empty)
{
switch (tokens[0])
{
case "\u2019"d:
writeln("Apostrophe smart " ~ tokens[0]);
break;
case "\u0027"d:
writeln("Apostrophe straight " ~ tokens[0]);
break;
default:
writeln("Other " ~ tokens[0]);
break;
}
tokens = tokens[1..$];
}
}
`
Prints:
Other D
Apostrophe smart ’
Other Addario
Other '
I would have expected:
Other D
Apostrophe smart ’
Other Addario
Apostrophe straight ' <== expected
More information about the Digitalmars-d-learn
mailing list