首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Scala中编译基本执行元示例

问无法在Scala中编译基本执行元示例
EN

Stack Overflow用户
提问于 2011-03-31 20:19:15
回答 1查看 268关注 0票数 1

我正在尝试编译the official guide中的示例,即带有乒乓球的示例。我已经将Ping和Pong类放入了它们自己的文件中,即默认包中。但是,Ping类有编译错误,说明它找不到Pong类,反之亦然。我也试图清理项目,以便重建将会发生,但我无法取得任何进展。我使用的是来自here的2.8.1的最终版本。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-31 20:54:14

可以在scala-2.8.1.final-sources.tgz中找到pingpong.scala的完整源代码

tgz内位置: scala-2.8.1.final-sources/docs/examples/actors/pingpong.scala

该示例假设所有类都在同一文件中,并且可以使用

代码语言:javascript
复制
scalac pingpong.scala

但是如果你想把它们放在不同的文件中:

Ping.scala

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
case object Stop

object pingpong extends Application {
  val pong = new Pong
  val ping = new Ping(100000, pong)
  ping.start
  pong.start
}

然后运行scalac *.scala

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5499731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档