scala的Option类型

编译的错误总比运行时错误好。因为你能够马上处理他,而不是要等到代码运行的时候。

有的时候你获取不到结果,例如你搜索一个列表没有值,访问一个Map有没有相应的Key,在JAVA中你将收到一个NULL,如果你没有处理这个Null,将会抛出NullException。在Scala中,你可以用Option,这样你可以以一种比较优雅的方式避免NullException.

Option是一种参数类型,例如Option[String] 或者 Option[File]

Option有两种值Some(...)或者None

var s = Some("abc")          
var t: Option[String] = None 
def chooseFile(): Option[File] = { ... }
//比较啰嗦的方式
chooseFile() match {
      case Some(f) => 
      case None =>   
}
//比较土的方式
if (t isDefined) println(t)
if (t isEmpty) println("Nothing here!")
//比较简单的方式
val w = t.getOrElse("Nothing here!") 

 

 

你可能感兴趣的:(scala,option)