枚举的重要性

时间:2016-09-29 22:38:57

标签: enums enumeration

我对Enum为何很重要有点困惑。假设我们有以下代码......

enum playerState {walking, running, idle, jumping, dead};

playerState myPlayerState = idle;

if{energy == 0}
{
  myPlayerState = dead;
}

这比仅仅使用字符串并完全避免枚举更有效,并在必要时切换到新的适当字符串值?

string playerState = "idle";

if{energy == 0}
{
  playerState = "dead";
}

3 个答案:

答案 0 :(得分:3)

区别在于Enum定义了一个变量可以容纳的严格值集,并且如果你尝试给它一些不好的东西,它会给你一个编译时错误。

使用Strings,它们可以获取任何值,如果字符串在程序中通过某个定义“坏”,它将在运行时失败;或根本不存在,并导致不可预测的行为。

在编译时失败的事情要比在运行时失败的事情要好得多;如果可能。

@Jeff也是对的。 Enum将占用更少的空间,所以如果你有很多变量浮动,使用Enum可能会有所作为。

答案 1 :(得分:2)

2个原因:

1)在大多数语言中,枚举将使用整数或类似的方式实现,这通常比可比较的字符串占用更少的内存。

2)它是其他开发人员查看代码的指南,让他们知道变量可以采用的有限状态列表,并告诉他们自然语言是什么。

答案 2 :(得分:1)

  1. Enum类型在大多数语言中是一个受限制的整数(一个可以设置一组有限值的整数),编译器已知并且可以在编译时检查
  2. 由于Enum的有限值具有人类可读的名称,因此使代码更具可读性
  3. 与字符串不同,Enums的存储和操作需要较少的计算工作量
  4. 大多数代码编辑器都会使用某种IntelliSense,允许编码人员选择其中一个可能的值,从而使代码更易于编写