Почему бы не установить значение напрямую - PullRequest
7 голосов
/ 17 августа 2011

Я читаю исходник проекта и нашел там такой код:

private var _responded: Boolean = _
{
    _responded = false
}

Я не понимаю, почему он так написал, не так ли?так же, как:

private var _responded = false

В чем разница между ними?

Ответы [ 2 ]

7 голосов
/ 17 августа 2011

Я являюсь автором этого кода.

Пишем так:

private var _responded = false

вызывает это предупреждение при компиляции (в более старых версиях Scala, похоже, нет проблем со Scala 2.9):

the initialization is no longer be executed before the superclass is called

Вы можете узнать об этом предупреждении в Google, чтобы найти дополнительную информацию.

6 голосов
/ 17 августа 2011

Я собираюсь рискнуть предположить здесь, но это очень похоже на код, полученный автоматическим преобразованием Java в Scala intellij.

Этот преобразователь старается максимально точно поддерживать семантику исходной Java и, как правило, создает очень неидиоматический код, а также множество вложенных областей видимости и изменяемых переменных.

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