当前位置: 首页 > 知识库问答 >
问题:

枚举反向查找[重复]

秋向阳
2023-03-14

假设我有一个枚举:

enum Color {Red = 1, Green, Blue};

如果我有一个数字,我可以这样得到枚举键:

var colorName: string = Color[2]; // colorName = "Green"

然而,这给了我一个字符串。我怎样才能得到一个Color类型的变量呢?即:

colorName : Color == Color.Green

共有1个答案

燕经国
2023-03-14

不要按数字(这会给你一个字符串)对它进行索引,只使用指定的成员。Typescript很乐意让您为枚举指定一个数字,即。

enum Color {Red = 1, Green, Blue};

var foo:Color = Color.Green; // effectively foo = 2;
console.log(foo == Color.Green); // true

或者,如果您已经有了字符串,您可以通过字符串索引颜色以获得其编号,即:

enum Color {Red = 1, Green, Blue};

var colorName:string = Color[2];
var color: Color = Color[colorName];
console.log(color == Color.Green); // true
 类似资料:
  • 我试图找到在Kotlin中对枚举进行“反向查找”的最佳方法。我从Effective Java中得到的一个收获是,在枚举中引入了一个静态映射来处理反向查找。通过一个简单的枚举将其移植到Kotlin上,我会得到如下所示的代码: 我的问题是,这是最好的方法,还是有更好的方法?如果我有几个遵循类似模式的枚举怎么办?在Kotlin中是否有一种方法可以使此代码在枚举之间更加可重用?

  • 问题内容: 我想声明一个枚举Direction,它具有一个返回相反方向的方法(以下语法不正确,即,不能实例化枚举,但它说明了我的观点)。这在Java中可行吗? 这是代码: 问题答案: 对于那些按标题吸引的人:是的,您可以在枚举中定义自己的方法。如果您想知道如何调用这种非静态方法,则可以使用与其他任何非静态方法相同的方法- 在定义或继承该方法的类型实例上调用它。如果是枚举,则此类实例仅为s。 因此,

  • 问题内容: 我想在打字稿中使用字符串枚举,但在其中看不到对反向映射的支持。我有一个这样的枚举: 我需要这样使用它: 是的,我不知道字符串中有什么,如果字符串未在枚举定义中显示,我需要将其解析为枚举或在运行时解析失败。我该如何做到整洁呢?提前致谢 问题答案: 我们可以将其设为一个类型,并将值设为同一类型。 更严格的版本: 字符串枚举作为此答案:

  • 问题内容: 我下面有一个Enum类 并希望它得到相反的顺序。在.Net中,代码是这样的 在Java中,我试图做同样的事情。 但是,我无法做到。请告诉我如何用Java做同样的事情? 问题答案: 有一个内置方法可返回所有枚举常量的数组。您可以向后迭代。

  • 问题内容: 我们有一个REST API,客户端可以在其中提供代表Java Enums中服务器上定义的值的参数。 因此,我们可以提供一个描述性错误,我们将此方法添加到每个Enum中。似乎我们只是在复制代码(错误)。有更好的做法吗? 更新 :提供的默认错误消息为。我想提供一个来自API的更具描述性的错误。 问题答案: 可能可以实现通用静态方法。 像这样 那么你就可以 或显式调用实用程序类查找方法。

  • 为什么我在浏览java时看不到