用于 Map 的理解抛出错误的 Scala
scala for comprehension throwing error for Map
我有下面的代码片段,常规的 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)
错误信息是
Error:(84, 5) '<-' expected but '}' found.
} yield (key,value)
我不明白代码有什么问题。请帮助解决问题
for comprehension 中不能有这样的打印,你可以这样使用它们:
for{
(key, value) <- orec.groupBy(x => x.continent)
} yield println(key + value.length )
println
在 for
理解范围内不起作用。它应该像下面这样。
for {
(key, value) <- orec.groupBy(x => x.continent)
_ = println(key + value.length )
} yield (key,value)
for comprehension 在其第一个语句中始终以 <- 开头,该语句为后面的其余表达式创建上下文。
理解中的所有 <-
flatMap
期望最后一个 map
.
对于不符合由 for comprehension 建立的初始上下文的副作用任务,您应该使用 _ =
。
我推荐这个 tutorial。它更优雅地解释了理解。
我有下面的代码片段,常规的 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)
错误信息是
Error:(84, 5) '<-' expected but '}' found.
} yield (key,value)
我不明白代码有什么问题。请帮助解决问题
for comprehension 中不能有这样的打印,你可以这样使用它们:
for{
(key, value) <- orec.groupBy(x => x.continent)
} yield println(key + value.length )
println
在 for
理解范围内不起作用。它应该像下面这样。
for {
(key, value) <- orec.groupBy(x => x.continent)
_ = println(key + value.length )
} yield (key,value)
for comprehension 在其第一个语句中始终以 <- 开头,该语句为后面的其余表达式创建上下文。
理解中的所有
<-
flatMap
期望最后一个map
.
对于不符合由 for comprehension 建立的初始上下文的副作用任务,您应该使用 _ =
。
我推荐这个 tutorial。它更优雅地解释了理解。