如何在scala中导入类

如何在scala中导入类,scala,import,package,Scala,Import,Package,最近,我正在学习scala,scala中的软件包把我弄糊涂了 我有一个文件名为StockPriceFinder.scala: // StockPriceFinder.scala object StockPriceFinder { def getTickersAndUnits() = { val stockAndUnitsXML = scala.xml.XML.load("stocks.xml") (Map[String, Int]() /: (stock

最近,我正在学习
scala
,scala中的软件包把我弄糊涂了

我有一个文件名为
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运行它时,我得到了错误:
错误:未找到:value-StockPriceFinder
。在Java中,如果这两个源文件位于同一文件夹中,我不需要导入,我可以直接使用它,那么如何在scala中正确导入
StockPriceFinder


我曾尝试在
test.scala
中使用
导入StockPriceFinder
,但它仍然不起作用。

如果文件在同一个包(而不是文件夹)中,则不需要
导入StockPriceFinder

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

scalac StockPriceFinder.scala
scala -cp . test.scala

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

可能重复@LionelPort我曾尝试在
test.scala
中使用
import StockPriceFinder
,但它仍然不工作如果我不需要
StockPriceFinder
,我只使用
scala测试。scala
它将正常运行,无需编译。因此,如果我在其他地方引用该文件时需要编译该文件,它不会“不编译就运行”
scala
只负责为您编译它。但它不知道应该从哪里获得
StockPriceFinder