Sobes.tech
Junior — Middle

Kotlinдеги sealed class үчүн кандай артыкчылыктар жана колдонуу сценарийлерин билесиз?

sobes.tech AI

AIден жооп

Kotlinдеги sealed класс мурас эрежесин чектөө үчүн колдонулат. Бардык sealed классдын подкласстары ошол эле файлда болушу керек. Бул компиляторго бардык мүмкүн болгон мурасчыларды билүүгө мүмкүндүк берет, жана when билдирүүлөрүндө else бөлүмүн жазуунун кажети жок.

Артыкчылыктары:

  • Тип коопсуздугу: компилятор бардык варианттарды толук иштетилгенин текшерет.
  • Чектелген абалдар же окуялар топтомун моделдөө үчүн ыңгайлуу.

Колдонуу сценарийлери:

  • "абал" үлгүсүндө абалдарды ишке ашыруу.
  • Окуялар же буйруктарды иштетүү.
  • Чектелген варианттар топтомун көрсөтүү, мисалы API жооптору.

Мисал:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
    object Loading : Result()
}

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Маалыматтар: ${result.data}")
        is Result.Error -> println("Ката: ${result.error.message}")
        Result.Loading -> println("Жүктөө...")
    }
}