Ответ
Nothing в Kotlin — это подтип всех типов, но сам по себе не имеет экземпляров. В дженериках он полезен для:
- Обозначения отсутствия значения (например,
List<Nothing>— пустой список, который нельзя заполнить). - Запрета вызова методов (если функция возвращает
T : Nothing, она никогда не завершится нормально).
Пример:
fun fail(message: String): Nothing = throw IllegalStateException(message)
fun example(): String {
val result: String? = null
return result ?: fail("Result is null") // Тип вывода — String, т.к. `fail` не возвращает управление
}
Важно: Nothing? (nullable вариант) может содержать только null.