Scala:来自 Main 的用例 class
Scala: use case class from 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 method
中作为 Main extends App
.
执行
您必须执行 Abc.Meow
才能从 Main
对象或 import
Abc
中使用 import Abc._
引用 Meow
对象Main
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
在我的项目中有一个主要对象:
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 method
中作为 Main extends App
.
您必须执行 Abc.Meow
才能从 Main
对象或 import
Abc
中使用 import Abc._
引用 Meow
对象Main
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