App
'u genişleten nesnelere biraz da olsa bir davranışla karşılaştım.Uygulamayı genişleten nesneleri yüklerken scala'da ne oluyor?
scala> object A extends App {val x = "I am null"}
defined module A
scala> object B {val x = "I am a string"}
defined module B
scala> A.x
res0: java.lang.String = null
scala> B.x
res1: java.lang.String = I am a string
de bu biraz garip ... ama tuhaflaşıyor: Aşağıdaki Çoğaltma bir göz komutları alır. i sonra bu yüzden gerçek lazy val
çalıştı ... Bir object
içinde vals bazı tembel değerlendirme içine gitmek düşündüm:
scala> object C extends App {lazy val x = "What am I?"}
defined module C
scala> C.x
res2: java.lang.String = What am I?
yüzden burada neler? Normal bir vali null değeri niçin olur?
lazy val
'u kullanırken neden bu davranış değişiyor?
ve App
özelliğiyle bu kadar özel olan şey, normal değerlerin derecelendirilmemesini sağlıyor mu?