risc-v中文社区

 找回密码
 立即注册
查看: 1065|回复: 0

[原创] risc-v开发基础 Scala 枚举Enum---(22)

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2021-8-23 15:33:32 | 显示全部楼层 |阅读模式
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 因为自增
        }
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-5-3 12:58 , Processed in 0.018482 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表