scala.的Enumeration枚举示例(转)

简介

  在scala中没有枚举类型,但在标准类库中提供了Enumeration类来产出枚举。扩展Enumeration类后,调用value方法类初始化枚举中的可能值。

  内部类value实际上是一个抽象类,真正创建的是val。因为实际上是Val,所以可以为Value传入id和name。如果不指定,id就是在前一个枚举值id上加一,name则是字段名。

scala枚举示例

scala枚举示例

object TrafficLightColor extends Enumeration {
  type TrafficLightColor = Value
  val Red = Value(0, "Stop")
  val Yellow = Value(10)
  val Green = Value("Go")
}

object Margin extends Enumeration {
  type Margin = Value
  val TOP, BOTTOM, LEFT, RIGHT = Value
}

 

import test.TrafficLightColor._
import test.Margin._
object Driver extends App {
  println(BOTTOM, BOTTOM.id)

  def doWhat(color: TrafficLightColor) = {
    if (color == Red) "stop"
    else if (color == Yellow) "hurry up" else "go"
  }

  //使用match匹配
  def doWhat2(color: TrafficLightColor) = color match {
    case Red    => "stop"
    case Yellow => "hurry up"
    case _      => "go"
  }

  // load Red
  val red = TrafficLightColor(0) // Calls Enumeration.apply 
  println(red, red.id)
  println(doWhat(red))
  println(doWhat2(TrafficLightColor.Yellow))
  
   //打印出所有枚举
  Margin.values.foreach { v => println(v,v.id)}
}

  

 

 

转载于:https://www.cnblogs.com/moonlightml/p/9047101.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值