标签:
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对象。
标签:
原文地址:http://www.cnblogs.com/wlwgcdxc/p/4505636.html