我在寻找这个问题的答案时偶然发现了this topic。
基本上,我所要求的是与该线程中所做的相反。而不是通过它的名字得到枚举的价值,我想通过它的价值得到它的名字。这是怎么做到的?
答案 0 :(得分:5)
你这样做的原因完全相同,但埃里克指出,它并不完美:
import std.conv;
import std.stdio;
enum LogLevel { ALL, INFO, WARNING }
enum Color {white, gray = 1, grey =1, black}
void main()
{
enum l = to!LogLevel(1);
assert(l == LogLevel.INFO);
writeln(to!string(l));
enum c = to!Color(1);
writeln(to!string(c));
}
INFO
gray