在这篇blogpost by James Iry中,他写道:
另外,Scala有一个“选项”方法,可以将值提升为Some(value)或None,具体取决于它是否为null ...
我似乎无法在scaladoc中找到这个option
方法。
Iulian Dragos的gdata客户端项目包含的方法可能就是詹姆斯所指的方法。
def option[A <: AnyRef](a: A): Option[A] =
if (a eq null) None else Some(a)
请指出我在哪里可以在scaladoc中找到此方法。
P.S。我有一个看起来像这样的方法:
def permutations(s: String): List[String] = ...
我是否应该将其更改为:
def permutations(s: Option[String]): List[String] = ...
因为客户端可以使用null
调用它。目前在第一个实例中,我期望一个String参数&amp;我使用前面提到的option
方法手动将其打包。
答案 0 :(得分:15)
您可以在其配套对象上使用apply factory方法:
scala> Option.apply("Test")
res51: Option[java.lang.String] = Some(Test)
scala> Option.apply(null)
res52: Option[Null] = None
...或更短的版本:
scala> Option("Test")
res49: Option[java.lang.String] = Some(Test)
scala> Option(null)
res50: Option[Null] = None
答案 1 :(得分:1)
Scaladoc页面为http://www.scala-lang.org/api/current/scala/Option$.html。
要从主选项页面导航到它,请单击页面顶部类名旁边的圆圈中的大“C”。这会在班级和同伴之间切换。您还可以通过单击类名左侧左侧导航栏中的“O”导航到随播广告。