为什么IDEA在返回Future of None时会发出警告?

Tyd*_*yde 4 scala intellij-idea

对于以下代码段,IDEA会发出警告,这future {None}将是多余的:

queryString match {
  case Some(query) => ... // Do async call
  case None        => future { None }
}
Run Code Online (Sandbox Code Playgroud)

有更好的可能吗?

0__*_*0__ 5

您可以使用创建已设置的未来而不会生成闭包Future.successful[T](result: T),因此也许Future.successful(None)就是您想要的.

由于期货已经区分了成功和失败,而与其类型参数无关,因此,您也可以通过Future.failed(new Exception("No query string"))异步调用也可以省略包装来表示失败Some.