Scala/akka模式匹配通过管道传输到参与者消息的未来序列
好的,我正在尝试创建一个包含web请求的工作单元,并在完成后通过管道将其传递给参与者。我还不能很好地理解比赛的来龙去脉,我正在努力想出一种比赛的方法 我有一个包罗万象的匹配样式,与Scala/akka模式匹配通过管道传输到参与者消息的未来序列,scala,pattern-matching,akka,actor,future,Scala,Pattern Matching,Akka,Actor,Future,好的,我正在尝试创建一个包含web请求的工作单元,并在完成后通过管道将其传递给参与者。我还不能很好地理解比赛的来龙去脉,我正在努力想出一种比赛的方法 我有一个包罗万象的匹配样式,与case\uquo;Seq[\uquo]我将如何进行1)获得一个合适的case类匹配器,在这种情况下Seq[subcategory response]和2)我将如何在匹配体中获得它的句柄 val next_batch = Future.traverse(result.urls.get)(u => {
case\uquo;Seq[\uquo]
我将如何进行1)获得一个合适的case类匹配器,在这种情况下Seq[subcategory response]
和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[subcategory response]
。编译器警告让我感觉不太舒服。所以我的新问题是,在这种情况下,类型擦除意味着什么。我需要认真对待这个警告吗?如果是,我该如何处理它?
[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
s作为消息发送,而是将Seq
包装到另一个类中。例如:
case class SubcategoryResponses(responses: Seq[SubcategoryResponse])
然后您可以在case类上匹配:
res match {
case SubcategoryResponses(responses) =>
类型擦除意味着Scala在此上下文中无法区分Seq[Subcategory Response]和Seq[AnythingElse]。有关详细信息,请参阅。