内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
Scala没有类型安全enum
It‘就像Java一样。给定一组相关常量,Scala中表示这些常量的最佳方法是什么?
从Scala文档中复制出来的例子在实践中是有用的case object
为了得到一些东西最接近类似的一个Java Enum
,需要稍作修改。
使用skaffman的代码:
WeekDay.valueOf("Sun") //returns None
WeekDay.Tue.toString //returns Weekday(2)
而使用以下声明:
object WeekDay extends Enumeration {
type WeekDay = Value
val Mon = Value("Mon")
val Tue = Value("Tue")
... etc
}
你会得到更明智的结果:
WeekDay.valueOf("Sun") //returns Some(Sun)
WeekDay.Tue.toString //returns Tue