2014-04-07 55 views

回答

44

如果你看看Scala's sources,你会发现,Option(x)只是评估x和非空输入返回Some(x)Nonenull输入。

我会使用Option(x)时,我不知道是否x可以null或没有,Some(x)在100%肯定xnull

一个更需要考虑的是,当你想创建一个可选值,Some(x)产生更多的代码,因为你必须明确地指向值的类型:

val x: Option[String] = Some("asdasd") 
//val x = Option("asdasd") // this is the same and shorter 
9

Option(x)基本上只是说if (x != null) Some(x) else None

line 25 of the Source code

def apply[A](x: A): Option[A] = if (x == null) None else Some(x) 
相关问题