Scala for comprehension returns Option[List[T]]];想要列表[值]

Scala for comprehension returns Option[List[T]]]; want List[Value]

我是 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,
      ))
  }
)

这个returns Option[List[Account]]但是我只想return一个List[Account]。我知道这样做的原因是因为 for 理解实际上是一些语法糖,涵盖了一些 flatMapsmaps 但我不知道如何 return [= 的内容12=]。我不想使用 Option.get,因为我读过这种糟糕的做法(因为它基本上否定了 Option 的全部意义)。那么,我还能怎么做呢?

提前致谢。

你可以做一个.getOrElse(List.empty)