gpt4 book ai didi

Scala:如何根据值和标签获取枚举元素?

转载 作者:行者123 更新时间:2023-12-05 03:05:08 24 4
gpt4 key购买 nike

我有两个枚举类定义如下。

object Rating extends Enumeration {
type Rating = Value
val LOW: Value = Value("Low")
val AVERAGE: Value = Value("Average")
val HIGH: Value = Value("High")
}

object Reason extends Enumeration {
type Reason = Value
val MISSING_PARTS: Value = Value(1)
val WRONG_ITEM: Value = Value(2)
val DEFECTIVE_ITEM: Value = Value(3)
}
  1. 如何根据字符串值“低”、“平均”和“高”获取评级

  2. 如何根据整数值 1、2、3 获取 Reason

  3. 如何根据验证名称 MISSING_PARTS、WRONG_ITEM、DEFECTIVE_ITEM 获取 Reason

如果我使用的术语不正确,请纠正我。我来自 Java 背景并且是 Scala 的新手。我进行了很多搜索,但要么它们已经过时,要么它们使用非常琐碎的示例,其中标签和值是相同的字符串,这没有多大帮助。

我们将不胜感激。

最佳答案

  1. Rating.withName("低")
  2. Reason(1)(Reason.apply(1) 的简写)
  3. Reason.withName("DEFECTIVE_ITEM")

解释:

每个枚举值都有一个 ID 和一个名称。除非您使用适当的 Value(...) 重载覆盖它们,否则两者都是使用默认值生成的。在本例中,Rating 自定义了 namesReason 自定义了 ID。给定上面的代码,这些是分配给每个值的名称和 ID:

val LOW: Value = Value("Low")         // Id: 0; Name: Low
val AVERAGE: Value = Value("Average") // Id: 1; Name: Average
val HIGH: Value = Value("High") // Id: 2; Name: High

val MISSING_PARTS: Value = Value(1) // Id: 1; Name: MISSING_PARTS
val WRONG_ITEM: Value = Value(2) // Id: 2; Name: WRONG_ITEM
val DEFECTIVE_ITEM: Value = Value(3) // Id: 3; Name: DEFECTIVE_ITEM

现在,我们可以使用 withName(name: String)apply(id: Int) 访问特定值,它们分别基于名称和 ID 引用值。

关于Scala:如何根据值和标签获取枚举元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51313441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com