在阅读了这个关于 for-expressions 的优秀答案后,我尝试将 my 转换flatMap为for-expression.
val results: List[String] = foo()
def getId: List[String] = List((json \ "_id").asOpt[String].getOrElse(""))
val xs: List[String] = results.flatMap( x => getId(Json.parse(x)))
然后是 for 表达式。
val results: List[String] = foo()
def getId: List[String] = List((json \ "_id").asOpt[String].getOrElse(""))
val xs: List[String] = for {
r <- result
getId(Json.parse(r))
}
我得到一个<-预期的编译时错误getId(...),但发现}.
我的 for 表达有什么问题?