Sobes.tech
Junior — Middle

Sealed modifikatoru ilə elan edilmiş sinfin məqsədi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

sealed modifieri ilə elan olunan sinif irsiyyəti məhdudlaşdırmaq üçün nəzərdə tutulmuşdur. Belə sinifin alt sinifləri ola bilər, lakin yalnız eyni faylda elan olunanlar. Bu, irsiyyət hierarhiyasını idarə etməyə və sabitləşdirməyə imkan verir, onu daha proqnozlaşdırıla və təhlükəsiz edir.

Məsələn, Kotlin-də sealed siniflər tez-tez məhdud bir vəziyyət və ya variantlar toplusunu təmsil etmək üçün istifadə olunur, bu da when ifadələri ilə işləyərkən faydalıdır, çünki tərtibçi bütün variantların işlənməsinin tamlığını yoxlaya bilər.

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("Məlumat: ${result.data}")
        is Result.Error -> println("Xəta: ${result.error.message}")
    }
}