简介

在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. 嵌入式开发之davinci---dm8127 ipipe

    http://blog.csdn.net/dog0138/article/details/4212576 http://e2e.ti.com/support/dsp/davinci_digital_m ...

  2. Android-support-v4源码查看

  3. 2016/04/29 ①cms分类 ② dede仿站制作 步骤 十个步骤 循环生成菜单 带子菜单的菜单 标签 栏目 栏目内容列表 内容图片列表

    cms 系统还有: phpcms     企业站 Xiaocms  织梦  企业站 wordpress (博客) Ecshop 商城 Ecmall 多用户 Discms 记账 方维 订餐 团购 CMS ...

  4. Windows7 配置匿名Samba文件共享

    1.环境 系统:Windows 7 SP1 IP:192.168.118.151 2.配置 计算机|管理|本地用户和组|用户|Guest-->去掉账户已禁用 cmd|gpedit.msc|本地计 ...

  5. 深入探析c# Socket

    最近浏览了几篇有关Socket发送消息的文章,发现大家对Socket Send方法理解有所偏差,现将自己在开发过程中对Socket的领悟写出来,以供大家参考. (一)架构 基于TCP协议的Socket ...

  6. scrapy学习笔记:项目中 使用代理ip

    做为一个爬虫,最头疼的问题就是你的ip被封,想要在Scrapy领域无限制畅游,做好伪装是第一步,于是乎,抓取代理IP成了很多教程的开始部分.这里我说一下代理scrapy中代理ip,仅供大家借鉴! 代理 ...

  7. gdb core调试

    原文链接 http://blog.163.com/lanka83/blog/static/32637615200801793020182/http://blog.csdn.net/taina2008/ ...

  8. python中coding:utf-8和setdefaultencoding区别

    这两个作用不一样, 1. # coding:utf-8 作用是定义源代码的编码. 如果没有定义, 此源码中是不可以包含中文字符串的.PEP 0263 -- Defining Python Source ...

  9. css 实现元素四角图片样式,元素的大小不定

    demo 效果 css body { margin:; } .popup p{ margin-bottom:20px; margin-left:200px; } .popup p span{ disp ...

  10. python urllib从远程服务器下载文件到本地

    #!/usr/bin/env python #-*-coding:utf--*-' #Filename:download_file.py import sys,os import urllib def ...