Do czego dokładnie val a: A = _inicjalizuje wartość? Czy to wpisana wartość null? Dzięki.
Do czego dokładnie val a: A = _inicjalizuje wartość? Czy to wpisana wartość null? Dzięki.
Odpowiedzi:
val a: A = _to błąd kompilacji. Na przykład:
scala> val a: String = _
<console>:1: error: unbound placeholder parameter
val a: String = _
^
Co działa to var a: A = _(uwaga varzamiast val). Jak mówi Chuck w swojej odpowiedzi, inicjalizuje to zmienną do wartości domyślnej. Ze specyfikacji języka Scala:
0, jeśli T jest Int lub jednym z jego typów podzakresów,
0L jeśli T jest Long,
0,0f jeśli T jest Float,
0,0d jeśli T jest Double,
false, jeśli T jest Boolean,
() jeśli T jest Unit,
null dla wszystkich innych typów T.
val?
val a: Int = _prawdopodobnie jest to błąd kompilacji, ponieważ byłoby to zła praktyka, gdyby zadziałało. Byłby to po prostu zaciemniony sposób pisania val a: Int = 0. Ustawienie varwartości domyślnej ma sens, ponieważ varoczekuje się, że a ulegnie zmianie, ale wartość a valjest ustalona, więc najlepszą praktyką byłoby jawne przypisanie wartości.
Inicjuje asię do domyślnej wartości typu A. Na przykład domyślną wartością Int to 0, a domyślną wartością typu odwołania jest null.
NotNullcechę? :-)
_atuty NotNull.