Enums 基于成员';s值
我有一个Enums 基于成员';s值,enums,d,Enums,D,我有一个enum类型,我想将整数值转换为该类型。这不起作用: enum Code { OK = 200, FAILURE = 400 } auto c = to!Code("200"); 但这是: enum Code { OK = 200, FAILURE = 400 } Code c = to!Code("OK"); 好像是到了!(T) 正在根据枚举成员的名称而不是值进行转换。所以,我试过这个,它是有效的: Code c = cast(CodeEnum)20
enum
类型,我想将整数值转换为该类型。这不起作用:
enum Code
{
OK = 200,
FAILURE = 400
}
auto c = to!Code("200");
但这是:
enum Code
{
OK = 200,
FAILURE = 400
}
Code c = to!Code("OK");
好像是到了!(T)
正在根据枚举成员的名称而不是值进行转换。所以,我试过这个,它是有效的:
Code c = cast(CodeEnum)200;
这是进行这种转换的有效(也是唯一)方法吗?在我看来,问题出在其他地方。这与DMD 2.064(在DPaste上测试)的预期行为相同
您确定
code
的基础类型和的参数都是!代码
与您的情况相同吗?这是转换的要求。是的,问题出在其他地方!我正在有效地执行到!代码(“200”)代码>哪个按字符串进行了查找!谢谢
import std.conv; import std.stdio; enum Code { OK = 200, FAILURE = 400 } void main() { auto c = to!Code(200); writeln(c); }