Scala: Main中的用例类



在我的项目中有一个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 Appmain 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中的所有代码都将在对象Mainmain方法中执行。所以当你执行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

相关内容

  • 没有找到相关文章

最新更新