55.scala编程思想笔记——标记特征和case对象

137 阅读1分钟

55.scala编程思想笔记——标记特征和case对象

欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…
源码下载连接请见第一篇笔记。\

标记特征是一种将类或对象组织到一起的方式。

         Sealed关键告诉scala,除了在此处看到的Color子类型之外,没有任何其他子类型。

         Case对象像case类一样,只是产生的是对象而不是类。

         例如:

import com.atomicscala.AtomicTest._

 

sealed trait Color

case object Red extends Color

case object Green extends Color

case object Blue extends Color

object Color {

  val values =Vector(Red, Green, Blue)

}

 

def display(c:Color) = c match {

  case Red=> s"It's $c"

  case Green=> s"It's $c"

  case Blue=> s"It's $c"

}

 

Color.values.map(display) is

"Vector(It's Red, It's Green, It's Blue)"

         注意,传递给display的参数是标记特征Color.