2017-08-29 66 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