val a: A = _
- ошибка компиляции.Например:
scala> val a: String = _
<console>:1: error: unbound placeholder parameter
val a: String = _
^
Работает var a: A = _
(примечание var
вместо val
).Как говорит Чак в своем ответе, переменная инициализируется значением по умолчанию.Из спецификации языка Scala:
0, если T - Int или один из его поддиапазонных типов,
0L, если T - Long,
0.0f, если T - Float,
0.0d, если T равно Double,
false, если T является логическим значением,
(), если T равно Unit,
null для всех других типов T.