2017-08-29 32 views
0

我是很新,Scala和我有一些困难,搞清楚究竟如何提取形成OptionScala for comprehension return Option [List [T]]];想一览[超值]

我有一些代码的作用:

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理解是一些句法糖,覆盖了一些flatMapsmaps,但我无法弄清楚如何返回Option的内容。我不想用Option.get,因为我读过这是可怕的做法(因为它有效地阻止这种Option的关键所在。所以,我还能怎么办呢?

在此先感谢。

回答

2

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

+0

那么这很简单,谢谢! – LivingRobot