Ответ 1
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 длинно,
0.0f, если T Float,
0.0d, если T равно Double,
false, если T булево,
(), если T - единица,
null для всех других типов T.