sta*_*106 1 scala for-comprehension
我有以下代码片段,常规for循环工作正常。但是对于理解会抛出错误
println("Using for loop")
for( (key, value) <- orec.groupBy(x => x.continent) )
{
println(key + value.length )
}
println("Using for comprehension")
for{
(key, value) <- orec.groupBy(x => x.continent)
println(key + value.length )
} yield (key,value)
Run Code Online (Sandbox Code Playgroud)
错误消息是
Error:(84, 5) '<-' expected but '}' found.
} yield (key,value)
Run Code Online (Sandbox Code Playgroud)
我不明白代码有什么问题。请协助解决问题
println那样无法在for理解范围内工作。它应该像下面这样。
for {
(key, value) <- orec.groupBy(x => x.continent)
_ = println(key + value.length )
} yield (key,value)
Run Code Online (Sandbox Code Playgroud)
for理解应该始终在其第一条语句中以<-开头,该语句为随后的其余表达式创建上下文。
所有<-内心的理解都flatMap期待最后一个map。
您应该将_ =副作用用于与理解所建立的初始上下文不符的任务。
我推荐本教程。它更优雅地解释了理解。
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |