Apa sebenarnya yang val a: A = _
menginisialisasi nilai? Apakah ini null yang diketik? Terima kasih.
scala
initialization
Gregor Scheidt
sumber
sumber
Jawaban:
val a: A = _
adalah kesalahan kompilasi. Sebagai contoh:Apa yang berhasil adalah
var a: A = _
(perhatikanvar
bukanval
). Seperti yang dikatakan Chuck dalam jawabannya, ini menginisialisasi variabel ke nilai default. Dari Spesifikasi Bahasa Scala:sumber
val
?val a: Int = _
mungkin kesalahan kompilasi karena akan menjadi praktik yang buruk jika berhasil. Itu hanya akan menjadi cara penulisan yang kaburval a: Int = 0
. Menyetelvar
ke nilai default masuk akal karena avar
diharapkan berubah, tetapi aval
tetap sehingga praktik terbaiknya adalah menetapkan nilai secara eksplisit.Ini menginisialisasi
a
ke nilai default dari tipeA
. Misalnya, nilai default Int adalah 0 dan nilai default tipe referensi adalah null.sumber
NotNull
sifat tersebut? :-)_
mengalahkanNotNull
.