Scala/akka 模式匹配流水线到参与者消息的一系列期货



好的,我正在尝试创建一个 Web 请求的工作单元,并在完成后将其传送给参与者。我还不够了解匹配的来龙去脉,我正在失去头发,试图想出一种方法来做比赛。

我有一个包罗万象的比赛风格case _ : Seq[_]我将如何去做 1) 获得一个合适的案例类匹配器,在这种情况下是 Seq[SubcategoryResponse] 和 2) 我将如何在比赛主体内处理它?

val next_batch = Future.traverse(result.urls.get)(u => {
      val F = System.requester ? makeGetRequest(Root(),u.data)
      val F1 = F.map(f=> SubcategoryResponse(f.asInstanceOf[HttpResponse],u.payload.get,level+1))
      F1
    })
val res = Await result(next_batch, 20.seconds)
println(res.getClass)
res match {
  case _ : Seq[_] => {
    println("boom")
  }
}

编辑:宾果游戏

简单的语法 :( -> m : Seq[SubcategoryResponse] .编译器警告并没有让我觉得很舒服。所以我的新问题是,在这种情况下,类型擦除意味着什么。我需要认真对待这个警告吗?如果是这样,我该如何解决它?

[warn] /Users/hassan/code/scala/extractor/HonCrawler.scala:139: non-variable type argument HonCategoryBootstrap.this.SubcategoryResponse in type pattern Seq[HonCategoryBootstrap.this.SubcategoryResponse] is unchecked since it is eliminated by erasure
[warn]     case m : Seq[SubcategoryResponse] => {
[warn]              ^
[warn] one warning found
不要将

Seq作为消息发送,而是将Seq包装在另一个类中。 例如:

case class SubcategoryResponses(responses: Seq[SubcategoryResponse])

然后,您可以在案例类上匹配:

res match {
  case SubcategoryResponses(responses) => 

最新更新