首页 > 其他 > 详细

Option

时间:2015-05-15 13:31:56      阅读:143      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!