0

无法理解为什么以下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)
}

我按 分组projectEventsprojectName希望打印每个项目的项目。但是当我运行这段代码时,它只打印:

projectName: aaa
(aaa,rx.lang.scala.JavaConversions$$anon$2@49de17f4)
projectName: bbb
(bbb,rx.lang.scala.JavaConversions$$anon$2@52f6438d)

没有######### event in project印刷品。

我不明白为什么,我错过了什么吗?

4

1 回答 1

1

您忘记println在此行中使用:

eventsOfThisProject.foreach(x => "######### event in project " + projectName + ": " + x)

中的函数foreach只是转换x为 aString但不打印它。

于 2015-12-10T23:05:41.660 回答