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 理解实际上是一些语法糖,涵盖了一些 flatMaps
和 maps
但我不知道如何 return [= 的内容12=]。我不想使用 Option.get
,因为我读过这种糟糕的做法(因为它基本上否定了 Option
的全部意义)。那么,我还能怎么做呢?
提前致谢。
你可以做一个.getOrElse(List.empty)
我是 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 理解实际上是一些语法糖,涵盖了一些 flatMaps
和 maps
但我不知道如何 return [= 的内容12=]。我不想使用 Option.get
,因为我读过这种糟糕的做法(因为它基本上否定了 Option
的全部意义)。那么,我还能怎么做呢?
提前致谢。
你可以做一个.getOrElse(List.empty)