如何在scala中导入一个类

时间:2015-03-20 05:25:09

标签: scala import package

我最近在学习scalascala中的包裹让我很困惑。

我有一个名为StockPriceFinder.scala的文件:

// StockPriceFinder.scala
object StockPriceFinder {
    def getTickersAndUnits() = {
        val stockAndUnitsXML = scala.xml.XML.load("stocks.xml")

        (Map[String, Int]() /: (stocksAndUnitsXML \ "symbol")) {
            (map, symbolNode) => 
                val ticker = (symbolNode \ "@ticker").toString
                val units = (symbolNode \ "units").text.toInt
                map ++ Map(ticker -> units)
        }
    }
}

然后我想在同一文件夹中的StockPriceFinder中使用test.scala

val symbolAndUnits = StockPriceFinder.getTickersAndUnits

但是当我使用scala test.scala运行时,我收到错误:error: not found: value StockPriceFinder。在Java中,如果这两个源文件在同一个文件夹中,我不需要导入,我可以直接使用它,那么如何在scala中正确导入StockPriceFinder

我尝试在import StockPriceFinder中使用test.scala,但它仍无效。

1 个答案:

答案 0 :(得分:2)

如果文件位于同一个(不是文件夹)中,则不需要import StockPriceFinder

但您需要首先编译StockPriceFinder.scala并将正确的类路径传递给scala

scalac StockPriceFinder.scala
scala -cp . test.scala

应该工作(可能有点偏离)。但是,你不应该手动操作,因为它很快就无法管理;使用SBT或其他构建工具(Maven,Gradle)。