Ответ
Sealed Interface (или Sealed Class) — это интерфейс (или класс), который ограничивает возможные реализации (или наследников) строго заданным набором. Это позволяет создавать иерархии с фиксированными типами, что полезно для моделирования состояний или вариантов данных.
sealed interface Result {
data class Success(val data: String) : Result
data class Error(val message: String) : Result
}
fun handleResult(result: Result) = when (result) {
is Result.Success -> println(result.data)
is Result.Error -> println(result.message)
}
Преимущества:
- Исключает неучтённые кейсы в
when(если не указатьelse, компилятор предупредит). - Чётко определяет возможные варианты, улучшая читаемость.