如何在 scala 中导入 class

how to import a class in scala

最近在学习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)
        }
    }
}

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

val symbolAndUnits = StockPriceFinder.getTickersAndUnits

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

我试过在test.scala中使用import StockPriceFinder,但还是不行。

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

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

scalac StockPriceFinder.scala
scala -cp . test.scala

应该可以工作(可能有点不对劲)。但是,您不应该手动执行此操作,因为它很快就会变得难以管理;使用 SBT 或其他构建工具(Maven,Gradle)。