Enums 枚举的重要性

Enums 枚举的重要性,enums,enumeration,Enums,Enumeration,我有点困惑为什么枚举很重要。假设我们有以下代码 enum playerState {walking, running, idle, jumping, dead}; playerState myPlayerState = idle; if{energy == 0} { myPlayerState = dead; } 这比仅仅使用字符串和完全避免枚举,并在必要时切换到新的适当字符串值更有效吗 string playerState = "idle"; if{energy == 0} {

我有点困惑为什么枚举很重要。假设我们有以下代码

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

playerState myPlayerState = idle;

if{energy == 0}
{
  myPlayerState = dead;
}
这比仅仅使用字符串和完全避免枚举,并在必要时切换到新的适当字符串值更有效吗

string playerState = "idle";

if{energy == 0}
{
  playerState = "dead";
}
2个原因:

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


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

区别在于枚举定义了一组严格的变量值,如果你试图给它一些不好的东西,它会给你一个编译时错误

对于字符串,它们可以接受任何值,如果程序中的某个定义认为字符串是“坏”的,那么它将在运行时失败;或者根本没有,并导致不可预测的行为

编译时失败的东西比运行时失败的东西要好得多;如果可能的话

@杰夫也是对的。枚举通常会占用更少的空间,所以如果有很多变量在浮动,使用枚举可能会有所不同

  • 在大多数语言中,枚举类型是编译器已知的、可在编译时检查的受限整数(可以接受一组有限值的整数)
  • 由于枚举的有限值具有人类可读的名称,因此使代码更具可读性
  • 与字符串不同,枚举的存储和操作需要较少的计算工作量
  • 大多数代码编辑器都有某种智能感知,允许程序员选择一个可能的值,从而使代码更具可写性

  • 谢谢,我甚至没有想到编译与运行时组件。。。这很有道理。@4Matt Np。您将诅咒编译时错误,直到您开始在运行时弹出内容。如果你认为我的答案最能回答你的问题,请接受。