|
scala中没有象java那样有enum关键字,只能通过常规的语法进行枚举处理,
scala中的枚举值只是abstract class Enumeration下的abstract class value内部抽象类Value的实例,
并不是Enumeration的实例。Value类的实例在其构造方法中有两个值id和name,id是自增长,name如果不指定则默认值
object EnumWeek extends Enumeration{
type EnumWeek = Value
val Monday = Value(1)
val Tuesday = Value(2, "tue")
val Wednesday = Value(3)
val Thursday = Value(4)
val Friday = Value(5)
val Saturday = Value(6)
val Sunday = Value(7)
val SS = Value
def main(args: Array[String]): Unit = {
// 枚举值,Monday只传了id,name默认为枚举值
val monday = EnumWeek.Monday
println(monday) //Monday
// 通过name获得枚举值
val tuesday = EnumWeek.withName("tue")
println(tuesday) //tue
// 通过id获得枚举值
println(EnumWeek(6)) //Staturday
// 获得id
println(EnumWeek.SS.id) //8 因为自增
}
}
|
|