Scala枚举

object EnumDemo {
  def main(args: Array[String]): Unit = {
    //常用方法
    for (v <- WeekDay.values) {
      println(v.id + ":" + v)
    }
    println("最大ID:" + WeekDay.maxId)
    println("是否存在:"+WeekDay.checkExists("星期八"))
    WeekDay.showAll
  }
}


object WeekDay extends Enumeration {

  //类型别名,所有枚举对象类型就可以写成WeekDay而不是Value
  type WeekDay = Value

  //protected final def Value(name: String): Value = Value(nextId, name)
  //protected class Val(i: Int, name: String) extends Value with Serializable
  //最终调用Val的主构造器。Val是Value的子类,Value是Enumeration的内部类。构建的时候id从0开始增长。
  val Mon = Value("星期一")
  val Tue = Value("星期二")
  val Wed = Value("星期三")
  val Thu = Value("星期四")
  val Fri = Value("星期五")
  val Sat = Value("星期六")
  val Sun = Value("星期天")

  def checkExists(day: String) = this.values.exists(_.toString == day)

  def isWorkingDay(day: WeekDay) = !(day == Sat || day == Sun)

  def showAll = this.values.foreach(println)

}

  

posted @ 2020-04-16 09:50  地中有山  阅读(137)  评论(0编辑  收藏  举报