차이점은 무엇입니까
object Application extends App {
println("Hello World")
}
과
object Application {
def main(args: Array[String]): Unit = {
println("Hello World");
}
}
차이점은 무엇입니까
object Application extends App {
println("Hello World")
}
과
object Application {
def main(args: Array[String]): Unit = {
println("Hello World");
}
}
답변:
앱 특성은 실행 가능한 스칼라 프로그램을 만드는 편리한 방법입니다. 주요 방법 대체 방법과의 차이점은 앱 특성이 지연된 초기화 기능을 사용한다는 것입니다 (명백한 구문 차이는 제외).
2.9 릴리스 노트에서 ( http://www.scala-lang.org/old/node/9483 참조 )
App 특성을 상속하는 개체는 대신 Scala 2.9의 지연된 초기화 기능을 사용하여 상속 된 기본 메서드의 일부로 전체 본문을 실행합니다.
앱 체계의 또 다른 새로운 기능은 이제 args 값 (특성 앱에서 상 속됨)을 통해 명령 줄 인수에 액세스 할 수 있다는 것입니다.
main
메서드이고 본문이 예상대로 실행되지 않는다는 점에서 그렇습니다 . 메인에 진입 한 후 어느 시점에서 실행됩니까?
main
의 방법 App
당신에 대한 특성 마녀 GET의 혼합의 Application
목적은. 지연된 초기화가 Application
객체 의 본문을 실행한다는 사실을 넘어서는 마술은 없습니다 .
이 두 경우는 스칼라 스크립팅에서 동일하지 않습니다.
object extends App
" scala MyObject.scala
"명령에 의해 실행되지 않았지만 main 메서드가 포함 된 개체 가 " scala MyObject.scala
"명령에 의해 실행되었습니다 . 스크립팅의 주요 방법으로 객체를 찾는 스칼라로 설명되었습니다.
Eclipse의 REPL 또는 scala workseet MyObject.main(Array[String]())
를 사용하는 경우 두 경우 모두 명시 적으로 호출해야합니다 .
이 간단한 팁은 저와 같은 초보자에게 도움이됩니다.