假设我有来自查询字符串请求参数的String参数.如您所知,参数可能丢失或可能存在,但值为空字符串.在groovy语言中,我可以简单地做一些事情
List lst = words?.split(',')
Run Code Online (Sandbox Code Playgroud)
如果单词为null,则lst将为null而不是抛出NPE
scala中的类似快捷方式是什么?
Option [String]在这里不是一个选项,因为它是来自查询字符串的单词是String类型.
Dan*_*ral 14
如果你想保持空值,
val lst = Option(words).map(_ split ',').orNull
Run Code Online (Sandbox Code Playgroud)
但你应该做的是摆脱空值.如果某些API(Java,很可能)可以返回a null,请将其调用包装起来Option(),以获得正确的Option.如果需要传递一些API null,请传递一个option.orNull.
在你自己的代码中,不要让任何东西null.
我还会Option在这里使用.您可以轻松地将潜在的null变量转换为Option使用该Option对象的变量.例如
scala> def splitter(s: String) = Option(s) map { _.split(',') }
splitter: (s: String)Option[Array[String]]
scala> splitter("Here, are, some, strings, man.")
res50: Option[Array[String]] = Some([Ljava.lang.String;@7f4613f1)
scala> splitter(null)
res51: Option[Array[String]] = None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |