В Scala то, что означает "val a: A = _" (подчеркивание), означает?

Что именно означает val a: A = _ инициализировать значение? Это типичный нуль? Спасибо.

Ответ 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.

Ответ 2

Инициализирует a значение по умолчанию типа a. Например, значение по умолчанию для Int равно 0, а значение по умолчанию для ссылочного типа равно null.