我对Enum为何很重要有点困惑。假设我们有以下代码......
enum playerState {walking, running, idle, jumping, dead};
playerState myPlayerState = idle;
if{energy == 0}
{
myPlayerState = dead;
}
这比仅仅使用字符串并完全避免枚举更有效,并在必要时切换到新的适当字符串值?
string playerState = "idle";
if{energy == 0}
{
playerState = "dead";
}
答案 0 :(得分:3)
区别在于Enum定义了一个变量可以容纳的严格值集,并且如果你尝试给它一些不好的东西,它会给你一个编译时错误。
使用Strings,它们可以获取任何值,如果字符串在程序中通过某个定义“坏”,它将在运行时失败;或根本不存在,并导致不可预测的行为。
在编译时失败的事情要比在运行时失败的事情要好得多;如果可能。
@Jeff也是对的。 Enum将占用更少的空间,所以如果你有很多变量浮动,使用Enum可能会有所作为。
答案 1 :(得分:2)
2个原因:
1)在大多数语言中,枚举将使用整数或类似的方式实现,这通常比可比较的字符串占用更少的内存。
2)它是其他开发人员查看代码的指南,让他们知道变量可以采用的有限状态列表,并告诉他们自然语言是什么。
答案 2 :(得分:1)