Sobes.tech
Junior — Middle

Ի՞նչ է sealed մոդիֆիկատորով հայտարարած դասի նպատակը։

sobes.tech AI

Պատասխան AI-ից

sealed փոփոխիչով հայտարարած դասը նախատեսված է ժառանգության սահմանափակման համար: Այդպիսի դասը կարող է ունենալ ենթակլասներ, բայց միայն այները, որոնք հայտարարված են նույն ֆայլում: Սա թույլ է տալիս վերահսկել և ամրապնդել ժառանգության հիերարխիան, դարձնելով այն ավելի կանխատեսելի և անվտանգ:

Օրինակ, 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}")
    }
}