web-gelistirme-sc.com

Uygulama yöntemi kullanma ve skaladaki

Arasındaki fark nedir 

object Application extends App {
   println("Hello World")
}

ve 

object Application {
    def main(args: Array[String]): Unit = {
        println("Hello World");
    }
}
76
Ramesh

Uygulama özelliği, yürütülebilir bir ölçeklendirme programı oluşturmanın uygun bir yoludur. Ana yöntem alternatifine olan fark (Açık sözdizimsel farklılıkların dışında), Uygulama özelliğinin gecikmiş başlatma özelliğini kullanmasıdır.

2.9 için sürüm notlarından (bakınız http://www.scala-lang.org/old/node/9483 )

Uygulama özelliğini miras alan nesneler, bunun yerine, tüm vücudu devralınan bir ana yöntemin parçası olarak yürütmek için Scala 2.9’ın gecikmeli başlatma özelliğini kullanır.

App şemasının bir diğer yeni özelliği de, komut satırı argümanlarına şimdi args değeriyle erişilebilmesidir (özellik App'tan devralınmıştır).

58
Emil H

Bu iki durum, ölçekleme komut dosyasında aynı değildir.

object extends App, "scala MyObject.scala" komutu, tarafından yürütülmedi, ancak main yöntemini içeren nesne, "scala MyObject.scala" komutu tarafından çalıştırıldı.

REPL veya ölçeklendirilmiş Eclipse çalışma grubunu kullanırken, Her iki durumda da açıkça MyObject.main(Array[String]()) öğesini çağırmanız gerekir.

Bu basit ipucu benim gibi yeni başlayanlar için yardımcı olacaktır.

3
Taewon

Uygulama özelliği [[DelayedInit]] işlevselliği kullanılarak uygulanır; bu, ana yöntem yürütülmeden önce nesnenin alanlarının başlatılmayacağı anlamına gelir.

0
a-herch