Scala 如何在akka中筛选结果?
我有一个包含Int的未来列表:Scala 如何在akka中筛选结果?,scala,filter,akka,Scala,Filter,Akka,我有一个包含Int的未来列表:List(40,42,41)。我尝试使用我通常使用的filter函数对其进行过滤:f.filter(==42)。 f是包含列表的未来。我是从另一个演员那里得到的。执行时,我得到以下匹配错误: [ERROR] [12/03/2012 09:37:34.252] [playground-akka.actor.default-dispatcher-1] [akka://playground/user/sender] List(40, 42, 41) (of class s
List(40,42,41)
。我尝试使用我通常使用的filter函数对其进行过滤:f.filter(==42)
。
f是包含列表的未来。我是从另一个演员那里得到的。执行时,我得到以下匹配错误:
[ERROR] [12/03/2012 09:37:34.252] [playground-akka.actor.default-dispatcher-1] [akka://playground/user/sender] List(40, 42, 41) (of class scala.collection.immutable.$colon$colon)
scala.MatchError: List(40, 42, 41) (of class scala.collection.immutable.$colon$colon)
我不理解那个错误,也无法修复它。有人能帮我吗
编辑
以下是完整的代码:
case class Send(target: ActorRef, msg: String)
class SendingActor extends Actor with ActorLogging {
implicit val timeout = Timeout(1 second)
def receive = {
case Send(target, msg) =>
log.info("will send %s".format(msg))
val f = target ? msg
log.info("awaited " + Await.result(f.filter(_ == 42), timeout.duration).asInstanceOf[List[Int]])
}
}
您正试图通过调用Int列表未来的筛选器来筛选Int列表。你需要先“打开”列表
Await.result(f map { list => list filter { _ == 42 } })
请你把相关代码整体展示一下好吗?谢谢你的作品。经过一些尝试,我发现,我需要显式类型来实现这一点。