Scala for comprehension返回Option [List [T]]];想要清单[价值]

时间:2017-08-29 19:43:14

标签: scala functional-programming optional for-comprehension

我对Scala很陌生,并且很难确定如何从Option

中提取确切的内容

我的代码可以:

getResult( name, age, id).map(response =>
  for {
    accounts <- response._id_list // response.account_id_list is an Option[String]
    ageList <- response.age_list // response.details is an Option[Details]
  } yield {
      accounts.split(" ").map(accountID =>  Account(
        accountID = accountID,
      ))
  }
)

这会返回Option[List[Account]],但我只想返回List[Account]。我知道这样做的原因是因为for comprehension实际上是一些语法糖,涵盖了一些flatMapsmaps,但我无法弄清楚如何返回Option的内容。我不想使用Option.get,因为我已经阅读了这种可怕的做法(因为它基本上使Option的整点无效。那么,我怎么能这样做呢?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以执行.getOrElse(List.empty)