如果输入的字符串为空,有没有什么优雅的方法来返回None而不是一个对象?
下面是我想实现的一个粗略的例子。
private def foo(input: String): Option[Object] = {
Some(Object(input)) //return None instead if input is empty
}
*PS : 我所说的优雅是指我不需要再定义一个函数来实现这个目标。
Scala 2.13.x提供了 Option.when()
方法。
def foo(input: String): Option[Object] =
Option.when(input.nonEmpty)(Object(input))
def foo(input: String): Option[Object] =
if(input.nonEmpty)
Some(Object(input))
else
None
任何阅读你的代码的人都会立即解析它,所以真的,没有比这更好的了。
为了完整,跟随@jwvh的回答。Option.unless
中声明的否定谓词。Option.when
,
private def foo(input: String): Option[Object] = {
Option.unless(input.isEmpty)(Object(input))
}