代码之家  ›  专栏  ›  技术社区  ›  Alex

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

  •  0
  • Alex  · 技术社区  · 7 年前

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

    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得出原因

    3. 我怎样才能根据VAL名称找到丢失的零件、错误的项目、有缺陷的项目的原因?

    如果我没有使用正确的术语,请纠正我。我从Java背景和新到斯卡拉。我做了很多搜索,但是要么它们已经过时了,要么它们使用了非常简单的例子,其中标签和值是相同的字符串,这没有多大帮助。

    任何帮助都将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tzach Zohar    7 年前
    1. Rating.withName("Low")
    2. Reason(1) Reason.apply(1)
    3. Reason.withName("DEFECTIVE_ITEM")

    Value(...) Rating Reason

    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)