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

Option

时间:2015-05-15 13:32:27      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

Scala提供了Option机制来解决,代码中不断检查null的问题。

标准类库中,Option采用样例类实现,有两个样例子类:Some和None

Some中包装了一个值,可以使用泛型。

None中则表示没有值。

Option举例:

 1 def getProperty(name: String): Option[String] = {
 2   val value = System.getProperty(name)
 3   if (value != null) Some(value) else None
 4 }
 5 
 6 val osName = getProperty("os.name")
 7 
 8 osName match {
 9   case Some(value) => println(value)
10   case _ => println("none")
11 }

这样做还是,比较繁琐的。

也可以使用getOrElse来提供当为None时的默认值。

1 def getProperty(name: String): Option[String] = {
2   val value = System.getProperty(name)
3   if (value != null) Some(value) else None
4 }
5 
6 val osName = getProperty("os.name")
7 
8 println(osName.getOrElse("none"))

若想略过None,可以使用for推导式。

1 osName.foreach(print _)

通常不用我们自己写,像Map之类的集合类,的get等方法返回的就是一个Option对象。

Option

标签:

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

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