如何在 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 库结合起来。
在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 库结合起来。