scala.Enumeration 枚举示例

简介

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

内部类Value实际上是一个抽象类,真正创建的是Val。因为实际上是Val,所以可以为Value传入id和name

如果不指定,id就是在前一个枚举值id上加一,name则是字段名

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)}
}
时间: 2024-11-02 06:32:41

scala.Enumeration 枚举示例的相关文章

scala.的Enumeration枚举示例(转)

简介 在scala中没有枚举类型,但在标准类库中提供了Enumeration类来产出枚举.扩展Enumeration类后,调用value方法类初始化枚举中的可能值. 内部类value实际上是一个抽象类,真正创建的是val.因为实际上是Val,所以可以为Value传入id和name.如果不指定,id就是在前一个枚举值id上加一,name则是字段名. scala枚举示例 scala枚举示例 object TrafficLightColor extends Enumeration { type Tra

scala中枚举

scala没有从语法的角度来支持枚举,而是通过定义了一个接口Enumeration来支持的 object ExecutorState extends Enumeration{ type ExecutorState = Value val LAUNCHING, LOADING, RUNNING, KILLED, FAILED, LOST, EXITED = Value def isFinished(state:ExecutorState):Boolean = { Seq(KILLED, FAILE

scala使用多线程示例

写的一个scala多线程的小demo,以备后用 Runnable/Callable 区别:Runnable无返回值,Callable线程执行完有返回值 Runnable示例 import java.util.concurrent.{Executors, ExecutorService} object Test {   def main(args: Array[String]) {     //创建线程池     val threadPool:ExecutorService=Executors.n

Spark的枚举类型实例!scala的枚举。

Enumeration定义: [deploy] SparkSubmitAction  {   = Value   = Value } Enumeration使用: appArgs. {   SparkSubmitAction.=> (appArgs)   SparkSubmitAction.=> (appArgs)   SparkSubmitAction.=> (appArgs) }

Golang枚举示例之Day

GOPATH\src\day\day.go package day type Day uint const ( Sunday Day = iota Monday Tuseday Wednesday Thursday Friday Saturday ) func (day Day) String() string { switch day { case Sunday: return "Sunday" case Monday: return "Monday" case

Scala 枚举: Enumeration 概述

Spark Scala 枚举 * Java 中的那套枚举并不能直接使用到 Scala 中* Scala 中的枚举使用轻量级 Enumeration 进行实现* Scala 中的枚举其实是一个伴随对象* Scala 中的枚举没有方法重写功能* Scala 中的枚举其实都是 Enumeration.Value 这个对象 和Java和C++不同,Scala并没有枚举类型.不过,Spark标准类库提供了一个 Enumeration类型,可以用于生成枚举,定义一个枚举类的对象,并以Value方法调用枚举中

Scala:Enumeration

Scala开篇(目录) 先开看一下如何声明一个枚举对象 object EnumTest extends Enumeration{ type EnumTest = Value val One,Two,Three = Value } 这和我们在Java中声明有很大区别,Scala的枚举值有些特殊,它的关键是内部有一个Value类,所谓的枚举值都是通过它产生的. 如果我们不做任何约定的话,枚举值默认从0开始,依次+1 下面看一下Value类是怎么工作的. val One,Two,Three = Val

Scala学习笔记--枚举

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

已经废弃的枚举Enumeration

package com.runoob.Collection; import java.util.Enumeration; import java.util.Iterator; import java.util.Vector; public class EnumerationDemo { public static void main(String[] args) { /* * Enumeration:枚举 * 具备枚举取出方式的容器只有Vector */ Vector v = new Vecto