Что именно val a: A = _
инициализирует значение? Это типизированный нуль? Спасибо.
scala
initialization
Грегор Шайдт
источник
источник
Ответы:
val a: A = _
это ошибка компиляции. Например:Что работает
var a: A = _
(обратите вниманиеvar
вместоval
). Как говорит Чак в своем ответе, это инициализирует переменную значением по умолчанию. Из спецификации языка Scala:источник
val
?val a: Int = _
, вероятно, это ошибка компиляции, потому что это было бы плохой практикой, если бы это сработало. Это был бы просто запутанный способ написанияval a: Int = 0
. Установка значенияvar
по умолчанию имеет смысл, посколькуvar
ожидается, что он изменится, ноval
фиксирован, поэтому лучше всего назначать значение явно.Он инициализируется
a
значением типа по умолчаниюA
. Например, значение по умолчанию для Int равно 0, а значение по умолчанию для ссылочного типа - null.источник
NotNull
признаком? :-)_
козыремNotNull
.