Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D 未打印期望值的字符串枚举_D_Dmd - Fatal编程技术网

D 未打印期望值的字符串枚举

D 未打印期望值的字符串枚举,d,dmd,D,Dmd,我有以下D计划: import std.stdio; enum XYZ : string { A = "hello", B = "foo", C = "bar" } void main() { writeln(XYZ.A); writeln(XYZ.B); writeln(XYZ.C); } 上面印着: A B C 我希望它能打印hello、foo、和bar。为什么程序要打印常量的名

我有以下D计划:

import std.stdio;

enum XYZ : string
{
    A = "hello",
    B = "foo",
    C = "bar"
}

void main()
{
    writeln(XYZ.A);
    writeln(XYZ.B);
    writeln(XYZ.C);
}
上面印着:

A

B

C

我希望它能打印
hello
foo
、和
bar
。为什么程序要打印常量的名称而不是它的值?那么如何打印字符串值呢

编译器是DMD v2.063.2

为什么程序要打印常量的名称而不是它的值

作为一般规则,
writeln
和其他函数打印枚举值的名称,因为对于例如数字类型,名称传递的信息比数字更多

那么如何打印字符串值呢

把它放到一根弦上:

cast(string)XYZ.A