Scala 枚举数据作为字符串?

vic*_*vic 3 scala

Scala 中的枚举数据类型是否可以实现为 String as

enum Currency {CAD, EUR, USD }
Run Code Online (Sandbox Code Playgroud)

在 Java 中而不是

object Currency extends Enumeration {

  val CAD, EUR, USD = Value
}
Run Code Online (Sandbox Code Playgroud)

哪个数据值是二进制的?

我在 Java 和 Scala 中编写了相同的功能。枚举数据保存到数据库中。Java 版本适用于 String 值,但不适用于二进制数据的 Scala 版本。

Yuv*_*kov 7

你可以做:

object Currency extends Enumeration {
  type Currency = String
  val CAD = "CAD"
  val EUR = "EUR"
  val USD = "USD"
}
Run Code Online (Sandbox Code Playgroud)

然后每个的基础类型是一个实际的String.

  • 显式扩展枚举是否不好?是一个枚举不是更清楚吗? (4认同)
  • 没有必要扩展“Enumeration”。 (2认同)

Eyt*_*tan 5

您可以尝试使用 toString。

Currency.Cad.toString() == "Cad"
Currency.withName("Cad") == Currency.Cad
Run Code Online (Sandbox Code Playgroud)

另外,如果您想要您选择的可读格式,您可以选择您的字符串

object Currency extends Enumeration {
    val CAD = Value("Canadian Dollar")
    val EUR, USD = Value
}
Run Code Online (Sandbox Code Playgroud)

请参阅此博客文章了解完整信息。