为什么Phobos enum用来定义常量?例如,在std.math中:
enum real E = 2.7182818284590452354L;
Run Code Online (Sandbox Code Playgroud)
为什么不使用全球immutable?有什么优势/劣势enum了immutable?
dsi*_*cha 22
通常,对于编译时常量而不是运行时常量的东西,使用枚举没有任何缺点,它的优点是使你的意图绝对清晰,效率稍高.
编辑:枚举的另一个用例可以消除编译器是否应在运行时或编译时评估函数的歧义.如果将函数的结果分配给immutable堆栈变量,则将在运行时评估该函数.如果enum在同一范围内使用a ,则将在编译时评估结果.