Scala使用Scala枚举在一周中的几天
示例
可以通过扩展Enumeration创建类似Java的枚举。
object WeekDays extends Enumeration { val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value } def isWeekend(day: WeekDays.Value): Boolean = day match { caseWeekDays.Sat|WeekDays.Sun=> true case _ => false } isWeekend(WeekDays.Sun) res0: Boolean = true
还可以为枚举中的值添加易于理解的名称:
object WeekDays extends Enumeration { val Mon = Value("Monday") val Tue = Value("Tuesday") val Wed = Value("Wednesday") val Thu = Value("Thursday") val Fri = Value("Friday") val Sat = Value("Saturday") val Sun = Value("Sunday") } println(WeekDays.Mon) >> Monday WeekDays.withName("Monday") == WeekDays.Mon >> res0: Boolean = true
当心不太安全的行为,其中不同的枚举可以评估为相同的实例类型:
object Parity extends Enumeration { val Even, Odd = Value } WeekDays.Mon.isInstanceOf[Parity.Value] >> res1: Boolean = true