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

本文介绍了Scala中使用sealed trait实现的标记特征概念及其应用场景,并通过案例展示了如何定义case对象来简化枚举类型的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值