Что в Scala означает «val a: A = _» (подчеркивание)? - PullRequest
111 голосов
/ 01 декабря 2011

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

Ответы [ 2 ]

129 голосов
/ 01 декабря 2011

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.

29 голосов
/ 01 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...