pingpong.scala의 전체 소스는 TGZ에 scala-2.8.1.final-sources.tgz
위치에서 찾을 수 있습니다 : 스칼라 - 2.8.1.final - 소스/문서/예/배우/pingpong.scala
예는 가정 모든 클래스는 같은 파일에 있고
scalac pingpong.scala
컴파일 할 수 있습니다하지만 당신은 별도의 파일에 넣어하기를 원한다면 :
Ping.scal을
import scala.actors.Actor
import scala.actors.Actor._
case object Ping
class Ping(count: Int, pong: Actor) extends Actor {
def act() {
var pingsLeft = count - 1
pong ! Ping
while (true) {
receive {
case Pong =>
if (pingsLeft % 1000 == 0)
Console.println("Ping: pong")
if (pingsLeft > 0) {
pong ! Ping
pingsLeft -= 1
} else {
Console.println("Ping: stop")
pong ! Stop
exit()
}
}
}
}
}
Pong.scala
import scala.actors.Actor
import scala.actors.Actor._
case object Pong
class Pong extends Actor {
def act() {
var pongCount = 0
while (true) {
receive {
case Ping =>
if (pongCount % 1000 == 0)
Console.println("Pong: ping "+pongCount)
sender ! Pong
pongCount = pongCount + 1
case Stop =>
Console.println("Pong: stop")
exit()
}
}
}
}
pingpong.scala
case object Stop
object pingpong extends Application {
val pong = new Pong
val ping = new Ping(100000, pong)
ping.start
pong.start
}
다음 실행 scalac * .scala
감사합니다! 귀하의 소스를 통해 읽은 후 나는 사건 객체를 추가하는 것을 잊었습니다. – Geo