我有以下代码: (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
答案 0 :(得分:10)
Java(和Scala根据相同的惯例)对于在未命名的包中导入内容非常苛刻,这与根包不同。将Main
放入包中。
请参阅Why is my object not a member of package <root> if it's in a separate source file?