Scala 2.10中的Scala Actors无法识别

时间:2013-01-15 17:33:37

标签: scala scala-2.10 scala-ide

我最近更新了Eclipse Juno,它还将我的Scala更新为2.10。我知道Actors现在已被弃用,但我还是想使用它们。 scala-actors.jar和scala-actors-migration.jar是我的Eclipse构建路径的一部分,但是,对于导入,我得到“对象actor不是包scala的成员”。任何试图将scala库重新添加到项目失败的尝试都没有修复它。

使用Eclipse Juno和Scala 2.10的Mac OS X Lion。

部分代码(标记错误XXX):

import scala.actors.Actor    XXX actors not found in scala
import scala.actors.Actor._  XXX actors not found in scala

  class Solver() extends Actor {   XXX Actor not found

    def act() {
      // Read file
      val source = io.Source.fromFile("src/labyrinth.txt", "utf-8")
      val lines = source.getLines.toList
      source.close()

      // Fill multidimensional array
      var labyrinth = Array.ofDim[Cell](lines.length, lines.apply(0).length)
      for (i <- 0 until lines.length) { // each line
        for (j <- 0 until lines.apply(0).length) { // each column
          labyrinth(i)(j) = new Cell(lines.apply(i).toList.apply(j)) // Fill array cell with character
        }
      }

      // Search for start
      for (k <- 0 until labyrinth(0).length) {
        if (labyrinth(0)(k).character.toString() == "?") {
          val start = new CheckCell(labyrinth, Array((1, k)), this).start // Kick off search
          while (true) {
            receive { XXX receive not found
              case FoundSolution =>  XXX FoundSolution not found
                Console.println("Pong: stop")
                start ! Stop  XXX Stop not found
                exit()
            }
          }
        }
      }

    }

  }

1 个答案:

答案 0 :(得分:1)

您的示例适用于我(除了缺少的类型,例如CellCheckCell)。我相信你可能有以下其中一种:

  • 您的某个源文件中的package scala.blah声明
  • 包含scala作为子目录的源文件夹。检查项目属性,构建路径中的内容并查找源文件夹。如果您使用maven约定,src/main/scala应该是源目录(只是src/src/main/)。

上述两点都可以影响标准scala包,并将其替换为您的声明(或目录),它显然没有Actor类型。