如何在 Scala 2.12.15 中使用值实现枚举

How to implement enums with values in Scala 2.12.15

在Java中,可以使用(来自https://www.baeldung.com/java-enum-values#adding-constructor

public enum Element {
    H("Hydrogen"),
    HE("Helium"),
    NE("Neon");

    public final String label;

    private Element(String label) {
        this.label = label;
    }
}

用字符串值构造枚举,这样 NE.label 会产生 "Neon"

如何在 Scala 2.12.15 版本中做同样的事情? (请将以上示例翻译成 Scala)

Scala 中创建枚举的最佳方法是通过如下所示的基本 ADT:

sealed abstract class Element(val label: String)
object Element {
  final case object H extends Element(label = "Hydrogen")
  final case object HE extends Element(label = "Helium")
  final case object NE extends Element(label = "Neon")
}

如果您想要一些好东西,例如免费获取所有元素的列表或 getByName 方法。
那么最好的办法是将上面的内容与 Enumeratum 库结合起来。