Невозможно изменить значение инициализированного типа примитива с помощью Kotlin - PullRequest
0 голосов
/ 06 ноября 2019

Я не могу изменить значение инициализированной переменной.

Я попытался погуглить проблему, но безрезультатно. Float является примитивным типом, поэтому он не может быть lateinit.

class RegistrationActivity : AppCompatActivity() {

    val scale = 0f

    public override fun onStart() {
        super.onStart()
        scale = this.resources.displayMetrics.density
    }
}

Я ожидаю, что смогу инициализировать переменную "scale" вне тела метода, чтобы она могла использоваться другими методами, но в моемПопытка встретить меня с «Val не может быть переназначен» как ошибка внутри метода «onStart ()», когда я наведите курсор на «scale» в «scale = this.resources.displayMetrics.density».

1 Ответ

1 голос
/ 06 ноября 2019

Вам нужно использовать

var scale = 0f

вместо

val scale = 0f

val неизменяемым и не может меняться со временем

var можетсо временем меняются

Если вы пришли из Java.

val scale = 0f будет эквивалентно

final float scale = 0f;

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