11

我有以下代码:(src/main/scala/coins/coins.scala)

object Main extends App { 

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

我试图从这样的测试中引用它:(src/test/scala/coins/CoinsSuite.scala)

package coins

import org.scalatest.FunSuite

class CoinsSuite extends FunSuite {

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

我收到以下错误:

未找到:值 Main [错误] 导入 Main.countChange

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

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

package x

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

然后我可以正确地发出 import x.Main.countChange

我不知道对根包或单例对象可见性是否有限制?

- 添加

只是为了完成答案,SO上有几个有用的链接

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

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

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

4

1 回答 1

11

Java(和 Scala 根据相同的约定)对于在未命名的包中导入东西很生气,这与根包不同。放入Main一个包中。

如果我的对象在单独的源文件中,请参阅为什么我的对象不是包 <root> 的成员?

于 2012-10-06T20:25:08.000 回答