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)

の関数はaforeachに変換xするだけで、出力Stringしません。

于 2015-12-10T23:05:41.660 に答える