以下に、同じ結果を達成する 2 つの定義を示します。
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
が、うまくいくかどうか、またはこれが完全に間違ったアプローチであるかどうかは誰にも分かりますか?