特殊值的字符串表示形式

时间:2015-12-23 19:50:01

标签: scala enums tostring

a demo

object Main extends App {
  object MultOp extends Enumeration {
    type MultOp = Value
    val *, /, mod, rem = Value
  }
  println(MultOp.values) // produces $times, $div, mod, rem
}

无可否认地表明,值*/具有字符串表示形式$times $div而不是字面值。如何让*.toString等于*而不是$mult

1 个答案:

答案 0 :(得分:2)

您可以单独编写枚举值并指定字符串表示形式:

  object MultOp extends Enumeration {
    type MultOp = Value
    val * = Value("*")
    val / = Value("/")
    val mod = Value("mod")
    val rem = Value("rem")
  }
  println(MultOp.values) // prints MultOp.ValueSet(*, /, mod, rem)

Demo