ругается на переменную

выдает ошибку при попытке записать в переменную значение : This variable must either have a type annotation or be initialized

  private fun InitAuth () {
    // Retrieves the user's saved password for your app from their
// password provider.
    val getPasswordOption = GetPasswordOption()

// Get passkey from the user's public key credential provider.
   // val requestJson
     lateinit var requestJson
    val getPublicKeyCredentialOption = GetPublicKeyCredentialOption(
        requestJson = requestJson
    )

}

А если не объявлять переменную, то будет писать ошибку: Unresolved reference: requestJson

вот тут указано именно так написать - без указания значения и без указания типа и без инициализации пермеренной введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: CrazyElf

Давайте я разберу код по строкам прямо.

lateinit var requestJson

Объявляем переменную lateinit var, т.е. без типа и с поздней инициализацией, и не присваиваем ей ничего.

val getPublicKeyCredentialOption = GetPublicKeyCredentialOption(
        requestJson = requestJson
)

Здесь мы вызываем функцию GetPublicKeyCredentialOption и в качестве параметра функции под названием requestJson передаём нашу переменную requestJson. Тут название параметра функции и название переменной совпадают, но это не должно вас смущать. Можно заменить это понятным примером, который даст ту же самую ошибку:

lateinit var requestJson
val x = requestJson

Что мы тут хотим присвоить переменной x? Отсутствующее значение неизвестного типа. Если бы хотя бы тип переменной был известен, компилятору можно было бы инициализировать её значением по умолчанию для данного типа. Но в данном случае у компилятора нет вообще никаких подсказок, что же за значение должно быть в этой переменной и он вас прямо просит указать хотя бы одну из таких подсказок.

Надеюсь, так понятнее, откуда возникает ошибка.

P.S. Я Kotlin вообще не знаю, руководствуюсь знанием других языков программирования и здравым смыслом.

→ Ссылка