无法理解为什么以下rxscala代码无法按预期运行:
import rx.lang.scala.Observable
object MyTest extends App {
case class ProjectEvent(projectName: String, description: String)
val projectEvents: Observable[ProjectEvent] = Observable.just(
ProjectEvent("aaa", "d1"),
ProjectEvent("bbb", "d2"),
ProjectEvent("aaa", "d3")
)
lazy val grouped = projectEvents.groupBy(_.projectName).map { case (projectName, eventsOfThisProject) =>
println("projectName: " + projectName)
eventsOfThisProject.foreach(x => "######### event in project " + projectName + ": " + x)
(projectName, eventsOfThisProject)
}
grouped.foreach(println)
}
我将projectEvents
分组为projectName
,并希望打印每个项目的项目。但是当我运行这段代码时,它只打印:
projectName: aaa
(aaa,rx.lang.scala.JavaConversions$$anon$2@49de17f4)
projectName: bbb
(bbb,rx.lang.scala.JavaConversions$$anon$2@52f6438d)
没有######### event in project
打印。
我无法理解为什么,我错过了什么?
答案 0 :(得分:1)
您忘记在此行中使用println
:
eventsOfThisProject.foreach(x => "######### event in project " + projectName + ": " + x)
foreach
中的功能只是将x
转换为String
,但不会将其打印出来。