我有一个 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;
这是进行此转换的有效(且唯一)方法吗?
最佳答案
在我看来,问题出在其他地方。这与 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
的参数在您的情况下是相同的吗?这是转换的要求。
关于enums - 根据成员的值将 int 转换为适当的枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499652/