简介

在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)}
}

  

 

scala.的Enumeration枚举示例(转)的更多相关文章

  1. Scala学习笔记--枚举

    枚举 scala不用关注枚举的特别语法,取而代之的是标准库中的类, scala.Enumeration 想要创建新的枚举,只需要拓展这个类的对象即可 object Color extends Enum ...

  2. Scala进阶之路-Scala中的枚举用法案例展示

    Scala进阶之路-Scala中的枚举用法案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的枚举值和Java中的枚举值有点差别,不过使用起来也都差大同小异,我这 ...

  3. Scala 定义复杂枚举

    通常我们需要枚举参数不止两个,Scala提供的枚举类最多定义两个参数:id:Int与name:String.不能满足我们通常要求. object BaseEntryEnum extends Enume ...

  4. 【Swift学习笔记00】——enumeration枚举类型遵循协议protocol

    Apple官方文档:The Swift Programming LanguageProtocols and Extensions一节的小节练习,要求自行定义一个enumeration枚举类型,并且遵循 ...

  5. Java之enumeration(枚举)

    enumeration(枚举)是JDK1.5引入的新特性,放在java.lang包中. 1.枚举类方法介绍 package com.enums; public class TestEnum { pub ...

  6. NX二次开发-Block UI C++界面Enumeration(枚举)控件的获取(持续补充)

    NX9+VS2012 public: void SetBlockUIShow(); void EnumInt::SetBlockUIShow() { //获取枚举控件 PropertyList* En ...

  7. Scala高阶函数示例

    object Closure { def function1(n: Int): Int = { val multiplier = (i: Int, m: Int) => i * m multip ...

  8. java 枚举示例

    public enum YNEnum { N(0,"否"), Y(1,"是"); private int code; private String name; ...

  9. Scala 枚举介绍及深入应用

    本文详细地总结了Scala枚举的几种实现方式,对我们更好地进行函数式编程有很好地指导和帮助. Scala 枚举示例和特性 枚举(Enumerations)是一种语言特性,对于建模有限的实体集来说特别有 ...

随机推荐

  1. sqlserver主机名变更后的错误与处理办法

    sqlserver 服务器更改主机名后,须要做一些操作.不然维护计划 以及订阅公布都会有问题,详细过程例如以下:能够參考 有时改动计算机名后,运行select @@servername仍返回原来的计算 ...

  2. Android Studio运行app时提示Error: Please select Android SDK

    最近开启了一个android项目,点“Run”键运行app,并报错Error:Please select Android SDK: 选择 File -> Project Structure 调整 ...

  3. HDU1540 Tunnel Warfare —— 线段树 区间合并

    题目链接:https://vjudge.net/problem/HDU-1540 uring the War of Resistance Against Japan, tunnel warfare w ...

  4. YTU 2844: 改错题A-看电影

    2844: 改错题A-看电影 时间限制: 1 Sec  内存限制: 128 MB 提交: 69  解决: 47 题目描述 注:本题只需要提交标记为修改部分之间的代码,请按照C++方式提交. 小平家长为 ...

  5. YTU 2811: 打鱼还是晒网

    2811: 打鱼还是晒网 时间限制: 1 Sec  内存限制: 128 MB 提交: 192  解决: 150 题目描述 中国有句俗话"三天打鱼,两天晒网".小王从2000年的1月 ...

  6. jfreechart应用3--饼状图 学习(作者:百度 被风吹过的日子)

    jfreechart应用3--饼状图 三. 饼图 在WebRoot目录下建立名为pie的子目录,用来存放本教程中饼图的实例jsp页面.下面让我们来看一个简单的三维饼图.首先在pie目录下建立一个名为s ...

  7. Java简单的加密解密算法,使用异或运算

    package cn.std.util; import java.nio.charset.Charset; public class DeEnCode { private static final S ...

  8. 软件开发-MSF方法(《构建之法》读书笔记2)

    MSF-微软解决方案框架,是一套大型系统开发指南,它描述了如何用组队模型.过程模型和应用模型来开发Client/Server结构的应用程序,是在微软的工具和技术的基础上建立并开发分布式企业系统应用的参 ...

  9. bzoj 4753 最佳团体 —— 01分数规划+树形背包

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4753 注意赋初值为 -inf: eps 设为 1e-3 会 WA ... 代码如下: #in ...

  10. TCP/IP协议的建立连接与关闭连接过程

    一.建立连接(三次握手) 第一次握手:建立连接时,客户端发送SYN(seq=x)包到服务器,并进入SYN_SENT状态,等待服务器的确认.SYN:同步序列编号(Synchronize Sequence ...