Тип Nothing

Тип Nothing представляет отсутствие значения и используется для обозначения функций, которые никогда не возвращают результат (завершаются исключением или бесконечным циклом). Это особый тип в системе типов Kotlin, который является подтипом всех других типов.

Синтаксис

kotlinval variable: Nothing = throw Exception("Error")

Пример

Функция, которая всегда выбрасывает исключение и возвращает тип Nothing:

kotlinfun fail(message: String): Nothing {
  throw IllegalArgumentException(message)
}

val result: Nothing = fail("Error occurred")

Пример

Использование Nothing в условии when для обработки исключительных ситуаций:

kotlinval input: String = "invalid"

val number: Int = when (input.toIntOrNull()) {
  null -> fail("Invalid number format")
  else -> input.toInt()
}

Пример

Функция с бесконечным циклом также возвращает тип Nothing:

kotlinfun infiniteLoop(): Nothing {
  while (true) {
    println("Running...")
  }
}

Пример

Тип Nothing может быть использован в объявлениях переменных, которые никогда не будут инициализированы:

kotlinval neverValue: Nothing

fun initialize() {
  neverValue = throw Exception("Never initialized")
}

Пример

Использование Nothing в коллекциях для обозначения пустых коллекций определенного типа:

kotlinval emptyList: List<Nothing> = listOf()
val stringList: List<String> = emptyList
val intList: List<Int> = emptyList

Смотрите также

  • тип Unit,
    который представляет отсутствие значимого возвращаемого значения
  • тип Any,
    который является корневым типом в иерархии классов Kotlin
  • тип Boolean,
    который представляет логические значения true и false