这里有两种定义都获得相同的结果:
def sendTrigger(teamId:Long, data:String) {
EngineSync.browserSockets.collect{ case ((i,(u,t)),s) => if(t==teamId) { s.send(data) } }
}
def sendTrigger(teamId:Long, data:String) {
EngineSync.browserSockets.foreach{ case ((i,(u,t)),s) => if(t==teamId) { s.send(data) } }
}
发生了什么事是我通过套接字的列表循环和过滤它们发送数据。 作为一个新手到Scala的,我关注性能时,这个开始扩展。 从我了解foreach
与其它方法相比表现较差,没有人知道是否collect
会过得更好,或者如果这是错误的做法完全?