object delete extends App {
//枚举有个位置索引
println(WeekDayEnum.Mon.id)//0
println(WeekDayEnum.Fri.id)//4
println(WeekDayEnum.Fri)//Fri
}
object WeekDayEnum extends Enumeration {
type WeekDayEnum = Value
//Creates a fresh value, part of this enumeration.
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
换种写法
object delete extends App {
//枚举有个位置索引
println(WeekDayEnum.Mon.id)//0
println(WeekDayEnum.Tue.id)//1
println(WeekDayEnum.Mon)//Mon
}
object WeekDayEnum extends Enumeration {
val Mon: WeekDayEnum.Value =Value(0)
val Tue: WeekDayEnum.Value =Value(1)
}
再比如
object delete extends App {
//枚举有个位置索引
println(WeekDayEnum.Mon.id)//0
println(WeekDayEnum.Tue.id)//1
println(WeekDayEnum.Mon)//星期一
}
object WeekDayEnum extends Enumeration {
val Mon: WeekDayEnum.Value =Value(0,"星期一")
val Tue: WeekDayEnum.Value =Value(1,"星期二")
}
再比如
object delete extends App {
//枚举有个位置索引
println(WeekDayEnum.Mon.id)//0
println(WeekDayEnum.Tue.id)//1
println(WeekDayEnum.Mon)//星期一
}
object WeekDayEnum extends Enumeration {
val Mon: WeekDayEnum.Value =Value("星期一")
val Tue: WeekDayEnum.Value =Value("星期二")
}
再比如
object delete extends App {
//枚举有个位置索引
println(WeekDayEnum.Mon.id)//0
println(WeekDayEnum.Tue.id)//1
println(WeekDayEnum.Mon)//Mon
}
object WeekDayEnum extends Enumeration {
val Mon: WeekDayEnum.Value =Value
val Tue: WeekDayEnum.Value =Value
}
Value是个方法
可以没有参数,也可以有一个或者两个参数
protected final def Value: Value
/** Creates a fresh value, part of this enumeration. */
//无参的调用了有参的方法
protected final def Value: Value = Value(nextId)
protected final def Value(i: Int): Value = Value(i, nextNameOrNull)
//最终是构建了一个类Val
//Val是枚举类Enumeration的一个内部类
protected final def Value(i: Int, name: String): Value = new Val(i, name)