Wofür genau wird val a: A = _
ein Wert initialisiert? Ist das eine getippte Null? Vielen Dank.
scala
initialization
Gregor Scheidt
quelle
quelle
Antworten:
val a: A = _
ist ein Kompilierungsfehler. Beispielsweise:Was funktioniert, ist
var a: A = _
(Notizvar
stattval
). Wie Chuck in seiner Antwort sagt, initialisiert dies die Variable auf einen Standardwert. Aus der Scala-Sprachspezifikation:quelle
val
?val a: Int = _
wahrscheinlich ein Kompilierungsfehler, da es eine schlechte Praxis wäre, wenn es funktionieren würde. Es wäre nur eine verschleierte Schreibweiseval a: Int = 0
. Das Festlegen von avar
auf einen Standardwert ist sinnvoll, davar
erwartet wird, dass sich a ändert, aval
jedoch festgelegt ist. Daher empfiehlt es sich, einen Wert explizit zuzuweisen.Es wird
a
auf den Standardwert des Typs initialisiertA
. Beispielsweise ist der Standardwert eines Int 0 und der Standardwert eines Referenztyps null.quelle
NotNull
Merkmal mischt ? :-)_
Trumpf zu seinNotNull
.