Option类型

Scala语言中包含一个标准类型Option类型,代表可选值,Option类型的值可以有两个可能的值,一个为some(x) 其中x为有效值,另外一个为None对象,代表空值。
Option类型的值通常作为Scala集合类型(List,Map等)操作的返回类型。 比如Map的get方法:

scala> val capitals = Map("France"->"Paris", "Japan"->"Tokyo","China"->"Beijing")
capitals: scala.collection.immutable.Map[String,String] = Map(France -> Paris, Japan -> Tokyo, China -> Beijing)

scala> capitals get "France"
res0: Option[String] = Some(Paris)

scala> capitals get "North Pole"
res1: Option[String] = None

将Option类型的值放开的一种常见的方法是使用模式匹配:

scala> def show(x:Option[String]) = x match{
  case Some(s) => s
  case None => "?"
}

show: (x: Option[String])String

scala> show (capitals get "China")
res3: String = Beijing

scala> show (capitals get "France")
res4: String = Paris

scala> show (capitals get "North Pole")
res5: String = ?

Scala程序使用Option非常频繁,在Java中使用null 来表示空值,代码中很多地方都要添加Null检测,不然很容易出现NullPointException. 因此Java程序需要关心那些变量可能是Null,而这些变量出现Null的可能性很低,但一但出现,很难查出为什么出现NullPointerException.
Scala的Option类型可以避免这种情况,因此Scala应用推荐使用Option类型来代表一些可选值。使用Option类型,读者一眼就可以看出这种类型的值可能为None。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值