Scala的Option类型

Scala的Option类型

为了让所有东西都是对象的目标更加一致,也为了遵循函数式编程的习惯,Scala鼓励你在变量和函数返回值可能不会引用任何值的时候使用Option类型。在没有值的时候,使用None,这是Option的一个子类。如果有值可以引用,就使用Some来包含这个值。Some也是Option的子类。
None被声明为一个对象,而不是一个类,因为我们只需要它的一个实例。这样,它多少有点像null关键字,但它却是一个实实在在的,有方法的对象。

单独对一个map对象使用get方法,获取到的是一个Option类,获取里面的数值,需要再次调用运行一下get方法,例如

 

 1 object Test {
 2    def main(args: Array[String]) {
 3       val imap=Map(5->"test")
 4       val a:Option[Int] = Some(5)
 5       val b:Option[Int] = None
 6 
 7       println("a.getOrElse(0): " + imap.get(5).getOrElse(0) )
 8       println("b.getOrElse(10): " + b.getOrElse(10) )
 9    }
10 }

getOrElse会输出默认值10,如果获取到则进行输出

a.getOrElse(0): test
b.getOrElse(10): 10

  

 
原文地址:https://www.cnblogs.com/laodageblog/p/scala.html