码迷,mamicode.com
首页 > 其他好文 > 详细

Option

时间:2015-06-17 19:40:19      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

在scala中Option是一个有可能包含值的容器

Option对应的特质如下

trait Option[T] {
  def isDefined: Boolean
  def get: T
  def getOrElse(t: T): T
}

他有两个子类Some[T]和None。

Map.get返回的就是一个Option对象,表示有可能查找不到你想要的值。例子如下:

scala> val numbers = Map("one" -> 1, "two" -> 2)
numbers: scala.collection.immutable.Map[java.lang.String,Int] = Map(one -> 1, two -> 2)

scala> numbers.get("two")
res0: Option[Int] = Some(2)

scala> numbers.get("three")
res1: Option[Int] = None

如何获取Option中的值呢?

建议使用getOrElse或者模式匹配来处理。

 val result = res1.getOrElse(0) * 2

val result = res1 match {
  case Some(n) => n * 2
  case None => 0
}

 

Option

标签:

原文地址:http://www.cnblogs.com/wlwgcdxc/p/4584011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!