在我的项目中有一个Main对象:
object Main extends App {
println("Hello world")
}
和另一个:
object Abc {
abstract class BAbcTest
case object Meow extends BAbcTest
...
def domeow(b: BAbcTest): BAbcTest = b match { ... }
}
如何从Main
呼叫domeow
?我正在使用sbt,当我在那里输入run
时,它只是打印"Hello World."。
我试着在Main对象中写入domeow(Meow)
,但它一直说
not found: value Meow
在Main
对象内执行Abc.domeow(Abc.Meow)
。Main
中的所有内容都将作为Main extends App
在main method
中执行。
您必须执行Abc.Meow
才能从Main
对象引用Meow
对象,或者在Main
中使用import Abc._
来引用import
Abc
对象
object Main extends App {
println("Hello world")
Abc.domeow(Abc.Meow)
}
或导入Abc._
object Main extends App {
println("Hello world")
import Abc._
Abc.domeow(Meow)
}
object Abc {
abstract class BAbcTest
case object Meow extends BAbcTest
def domeow(b: BAbcTest): BAbcTest = b match { case Meow => Meow }
}
在Main
对象中执行Abc.test(1)
。
作为Main
扩展App
。Main中的所有代码都将在对象Main
的main
方法中执行。所以当你执行sbt run
时,Main
对象中的所有代码都会执行。
object Main extends App {
println("Hello world")
println(Abc.test(1))
}
object Abc {
def test(a: Int): Int = a match { ... }
}
Scala REPL scala> object Abc {
def test(a: Int): Int = a match { case 1 => 1}
}
defined object Abc
scala> object Main extends App {
println("Hello world")
println(Abc.test(1))
}
defined object Main
scala< Main.main(Array(""))
Hello world
1