Ответ
Sealed class (запечатанный класс) — это специальный класс в Kotlin, который ограничивает иерархию наследования. Все подклассы должны быть объявлены в том же файле или внутри самого sealed class. Это делает его удобным для представления ограниченного набора возможных состояний.
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val message: String) : Result()
object Loading : Result()
}
Особенности:
- Все наследники известны на этапе компиляции.
- Автоматически
final— нельзя наследовать вне sealed class. - Идеально подходит для
whenс гарантией покрытия всех случаев (безelse).
fun handleResult(result: Result) = when(result) {
is Result.Success -> println(result.data)
is Result.Error -> println(result.message)
Result.Loading -> println("Loading...")
} Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶