enums - 枚举的重要性

标签 enums enumeration

我对枚举为何重要感到有点困惑。假设我们有以下代码...

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

playerState myPlayerState = idle;

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

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

string playerState = "idle";

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

最佳答案

不同之处在于枚举定义了变量可以保存的一组严格的值,如果你试图给它一些不好的东西,它会给你一个编译时错误。

对于字符串,它们可以取任何值,如果根据程序中的某些定义该字符串是“坏的”,它将在运行时失败;或根本没有,并导致不可预测的行为。

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

@Jeff 也是对的。枚举几乎总是会占用更少的空间,所以如果你有很多 float 变量,使用枚举可能会有所不同。

关于enums - 枚举的重要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781078/

相关文章:

java - 无法创建枚举

c# - 在 C# 中有效地连接两个有序序列

java - XPosed: Hook 枚举中覆盖的函数

python - 使用 PEP 435 兼容枚举的带有枚举的 SQLAlchemy 列产生表创建错误

javascript - 如何使用 JSDOC3 记录枚举常量

ios - 有没有办法在 swift 中向除一个节点之外的所有创建的节点添加操作?

python - 在 __str__ 上调用 __init__ 会导致 aenum.Enum

c++ - 如何使用枚举变量作为模板参数?

c - 在 GCC 中分配或执行具有不同枚举类型的算术时如何发出警告?

c# - Java 枚举类型的 C# 等效项是什么?引用下面的代码