ope*_*sas 9 import scala packages
我有以下代码:(src/main/scala/coins/coins.scala)
object Main extends App {
def countChange(money: Int, coins: List[Int]): Int = {
[...]
Run Code Online (Sandbox Code Playgroud)
我试图从这样的测试中引用它:(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") {
[...]
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
找不到:值Main [error] import Main.countChange
但另一方面,从一个sbt控制台它工作正常
如果我在主文件中声明任何包,比如
package x
object Main extends App {
Console.println("Hello World!")
Run Code Online (Sandbox Code Playgroud)
然后我可以正确地发出import x.Main.countChange
root包或者我不知道的单例对象可见性是否存在限制?
- 添加
只是为了完成答案,SO上有几个有用的链接
Rex*_*err 10
Java(和Scala根据相同的惯例)对于在未命名的包中导入内容非常容易,这与根包不同.放入Main包裹.
如果它位于单独的源文件中,请参阅为什么我的对象不是包<root>的成员?