Sobes.tech
Junior — Middle

Мақсади синфе, ки бо иловаги sealed эълон шудааст, чист?

sobes.tech AI

Ҷавоб аз AI

sealed модификатори билан эълон қилинган синф мерос олишни чеклаш учун мўлжалланган. Бундай синфнинг подкласлари бўлиши мумкин, аммо фақат шу файлда эълон қилинганлар. Бу мерос олиш иерархиясини назорат қилиш ва мустаҳкамлашга imkon беради, уни кўпроқ олдиндан билувчан ва хавфсиз қилади.

Масалан, Kotlinда sealed синфлар кўпинча чекланган ҳолатлар ёки вариантлар тўпламини ифода қилиш учун қўлланилади, бу when ифодаларида фойдали бўлиб, компилятор барча вариантларнинг тўлиқ ишлашини текшириши мумкин.

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

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Маълумот: ${result.data}")
        is Result.Error -> println("Хатолик: ${result.error.message}")
    }
}