zoukankan      html  css  js  c++  java
  • 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)}
    }
    

      

     

  • 相关阅读:
    C#中如何求时间间隔?
    Ilist<T> 转换成 DataSet
    EditPlus 快捷键
    Array和ArrayList的异同点
    sql server 查询数据库中有多少个表
    jquery + Css 模式对话框
    paddingtop、margintop和top的区别
    JQuery之ContextMenu(右键菜单)
    关于TextBox的Enable与ReadOnly属性
    AjaxToollit 3.5 使用整理
  • 原文地址:https://www.cnblogs.com/moonlightml/p/9047101.html
Copyright © 2011-2022 走看看