【问题标题】:Get name of the enum in scala 3?在scala 3中获取枚举的名称?
【发布时间】:2022-01-12 16:27:51
【问题描述】:

Java 枚举有 name() 方法,但 scala 3 没有。

如何在 scala 3 中获取枚举的名称?

enum Color:
  case Red, Green, Blue

【问题讨论】:

    标签: scala enumeration scala-3


    【解决方案1】:

    toString() 方法给出枚举的名称。

    enum Color:
      case Red, Blue, Yellow
    
    println(Color.Red.toString()) //=> Red
    

    Scala 3 enum 还可以扩展 java Enum 类并使用name() 方法。

    enum Color extends Enum[Color]:
      case Red, Blue, Yellow
    
    println(Color.Red.name()) //=> Red
    

    【讨论】:

    • 我猜这两种方法都不适用于case Complicated(r: Int, g:Int, b:Int)。在这些情况下,.productPrefix 会为您提供案例名称(此处为Complicated)。
    • @Thilo,它适用于参数化枚举。 scastie.scala-lang.org/mk8J7S8eTG2p0Yt1EuEXaw 你能添加更多关于你的例子case Complicated(r: Int, g:Int, b:Int) 的细节吗?
    • enum 关键字也可用于定义不直接转换为 Java 枚举的代数数据类型:docs.scala-lang.org/scala3/reference/enums/adts.html
    猜你喜欢
    • 2012-12-28
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多