使用Scala的Enum会比不使用它带来什么确切的好处。
object Colours extends Enumeration {
val Red, Blue, Green = Value
}
为什么我不能仅将其用作:
object Colours{
val Red = "Red"
val Blue = "Blue"
val Green = "Green"
}
我同意它有点冗长,但是我不必在必须使用它时就做一个toString。还有更好的理由使用枚举吗? 我的问题是: 1)是否应该仅因为枚举是一种好习惯而使用Enums? 2)是否有任何性能方面的考虑?
答案 0 :(得分:3)
真正的问题是“为什么要这样做?”。使用类型系统时,可以减少错误代码的可能性。您可以防止出现以下错误:
showColor("green") // wrong casing
color match {
case "Green" => //
case "Pink" => // invalid color
} // match didn't include all possibilities (exhaustiveness)
当然,您始终可以使用定义的val来代替文字字符串,但是没有类型就没有强制执行的值。
明智的性能-除非处于紧密的循环中,否则可能不会有太大的差异
答案 1 :(得分:1)
您将从Enum
更何况Enum
遇到这些问题