我有enum
类型,我想将整数值转换为该类型。这不起作用:
enum Code
{
OK = 200,
FAILURE = 400
}
auto c = to!Code("200");
但这是:
enum Code
{
OK = 200,
FAILURE = 400
}
Code c = to!Code("OK");
似乎to!(T)
正在根据枚举成员的名称进行转换,而不是根据值进行转换。所以,我试过这个并且它正在运行:
Code c = cast(CodeEnum)200;
这是一种有效(且唯一)的方式来进行此转换吗?
答案 0 :(得分:3)
在我看来,问题出在其他地方。这与DMD 2.064(在DPaste上测试)的预期相同
import std.conv;
import std.stdio;
enum Code
{
OK = 200,
FAILURE = 400
}
void main()
{
auto c = to!Code(200);
writeln(c);
}
您确定Code
的基础类型和to!Code
的参数在您的情况下是否相同?这是转换的要求。