pingpong.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 62 行

SCALA
62
字号
package examples.actorsimport scala.actors.Actorimport scala.actors.Actor._case object Pingcase object Pongcase object Stop/** * Ping pong example. * * @author  Philipp Haller * @version 1.1 */object pingpong extends Application {  val pong = new Pong  val ping = new Ping(100000, pong)  ping.start  pong.start}class Ping(count: Int, pong: Actor) extends Actor {  def act() {    var pingsLeft = count - 1    pong ! Ping    loop {      react {        case Pong =>          if (pingsLeft % 1000 == 0)            println("Ping: pong")          if (pingsLeft > 0) {            pong ! Ping            pingsLeft -= 1          } else {            println("Ping: stop")            pong ! Stop            exit()          }      }    }  }}class Pong extends Actor {  def act() {    var pongCount = 0    loop {      react {        case Ping =>          if (pongCount % 1000 == 0)            println("Pong: ping "+pongCount)          sender ! Pong          pongCount += 1        case Stop =>          println("Pong: stop")          exit()      }    }  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?