scala:无法从根范围导入对象

时间:2012-10-06 18:55:06

标签: scala import packages

我有以下代码: (SRC /主/阶/硬币/ coins.scala)

object Main extends App { 

  def countChange(money: Int, coins: List[Int]): Int = {
  [...]

我正试图从这样的测试中引用它: (SRC /测试/阶/硬币/ CoinsSuite.scala)

package coins

import org.scalatest.FunSuite

class CoinsSuite extends FunSuite {

  import Main.countChange
  test("only onw way to pay $0") {
  [...]

我收到以下错误:

未找到:值主要 [error] import Main.countChange

但另一方面,从一个sbt控制台它可以正常工作

如果我在主文件中声明任何包,例如

package x

object Main extends App { 
  Console.println("Hello World!")

然后我可以纠正问题     import x.Main.countChange

root包或者我不知道的单例对象可见性有限制吗?

- 已添加<​​/ p>

只是为了完成答案,在SO

处有几个有用的链接

https://stackoverflow.com/a/2030159/47633

https://stackoverflow.com/a/9822212/47633

https://stackoverflow.com/a/9822227/47633

1 个答案:

答案 0 :(得分:10)

Java(和Scala根据相同的惯例)对于在未命名的包中导入内容非常苛刻,这与根包不同。将Main放入包中。

请参阅Why is my object not a member of package <root> if it's in a separate source file?