Основы Kotlin часть 1 — ! и ? и ? Работа с нулевыми значениями с помощью .let


почему

В Kotlin есть множество операторов для работы с нулями, поэтому вот краткое описание.

https://play.kotlinlang.org/

Я опробовал его, запустив здесь


Нормальное выполнение

    val maybeNullValue = null
    println(maybeNullValue)
// null
Войдите в полноэкранный режим Выход из полноэкранного режима

При обычной печати возвращается null


Если null возвращается с помощью nullableValue! возвращает null, или возвращает ошибку nullable.

https://engawapg.net/kotlin/116/what-is-kotlin-exclamation-mark/

    val nullableValue = null
    println(nullableValue!!)
// Overload resolution ambiguity
// 多分ぬるぽ
Войдите в полноэкранный режим Выход из полноэкранного режима

Оператор, который разрушается при использовании на значении, содержащем null.
Думаю, его можно использовать в ситуациях, когда это будет ошибкой, но это лучше, чем перечеркнуть нуль.

Может использоваться, когда вы хотите вставить ненулевое значение в нулевой тип.


Если nullableValue?:»» возвращает null, возвращается пустая строка.

    val maybeNullValue = null
    println(maybeNullValue?:"empty")
// empty
Войдите в полноэкранный режим Выход из полноэкранного режима

Войдите в полноэкранный режим Если оно равно null, вы можете использовать «Enter fullscreen mode :» для ввода следующего значения.

Во многих случаях будет введена пустая строка.
(Для простоты образец содержит строку «пусто»).

Это безопасно и легко написать.


Запишите процесс в nullableValue?.let { }, чтобы он не выполнялся, когда значение равно null.

https://www.tutorialspoint.com/best-way-to-null-check-in-kotlin#:~:text=let%22%20оператор,a%20non%2DNULL%20able%20значение.

nullableValue?.let { // execute(nullableValue) }

Таким образом, если null не присутствует, он будет пропущен.

    val nullableValue = "text"
    nullableValue ?.let {
      println(nullableValue)
    }
    println("executed")

//text
//executed
Войдите в полноэкранный режим Выход из полноэкранного режима

Если вы вводите текст, он печатается, но

    val nullableValue = null
    nullableValue ?.let {
      println(nullableValue)
    }
    println("executed")
//
//executed
Войдите в полноэкранный режим Выход из полноэкранного режима

Если введен null, то он пропускается.
Легко написать одним словом.

Оцените статью
devanswers.ru
Добавить комментарий