Wofür genau wird val a: A = _ein Wert initialisiert? Ist das eine getippte Null? Vielen Dank.
Wofür genau wird val a: A = _ein Wert initialisiert? Ist das eine getippte Null? Vielen Dank.
Antworten:
val a: A = _ist ein Kompilierungsfehler. Beispielsweise:
scala> val a: String = _
<console>:1: error: unbound placeholder parameter
val a: String = _
^
Was funktioniert, ist var a: A = _(Notiz varstatt val). Wie Chuck in seiner Antwort sagt, initialisiert dies die Variable auf einen Standardwert. Aus der Scala-Sprachspezifikation:
0 wenn T Int oder einer seiner
Unterbereichstypen ist , 0L wenn T Long ist,
0.0f wenn T Float ist,
0.0d wenn T Double ist,
false wenn T Boolean ist,
() wenn T Unit ist,
null für alle anderen Typen T.
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 Schreibweise val a: Int = 0. Das Festlegen von a varauf einen Standardwert ist sinnvoll, da varerwartet wird, dass sich a ändert, a valjedoch festgelegt ist. Daher empfiehlt es sich, einen Wert explizit zuzuweisen.
Es wird aauf den Standardwert des Typs initialisiert A. Beispielsweise ist der Standardwert eines Int 0 und der Standardwert eines Referenztyps null.
NotNullMerkmal mischt ? :-)
_Trumpf zu sein NotNull.