55.scala编程思想笔记——标记特征和case对象
欢迎转载,转载请标明出处:http://blog.youkuaiyun.com/notbaron/article/details/50447608
源码下载连接请见第一篇笔记。
标记特征是一种将类或对象组织到一起的方式。
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.