Junior — Middle
Тавзеҳ диҳед, ки классҳои баста дар Kotlin чистанд ва чӣ гуна истифода мешаванд
sobes.tech AI
Ҷавоб аз AI
Дар Kotlin мафҳуми махсуси "синфҳои баста" (closed classes) ҳамчун навъи ҷудогона вуҷуд надорад, аммо идеяи монанд вуҷуд дорад — синфҳои sealed (мӯҳрзада).
Синфи sealed ҳирасарҳадро маҳдуд мекунад: ҳамаи зерсинфҳои чунин синф бояд дар ҳамон файл эълон шаванд. Ин имкон медиҳад, ки компилятор ҳамаи зерсинфҳоро донад ва онҳоро истифода барад, масалан, дар изразҳои when бе ниёз ба навиштани шохаи else.
Истифодаи синфҳои sealed барои моделсозии маҷмӯи маҳдуди вариантҳо, масалан, ҳолатҳо ё ҳодисаҳо, қулай аст.
Масалан:
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}")
}
}
Агар "синфҳои баста" маънои синфҳое бо модификатори private ё internal дошта бошанд, онҳо синфҳое бо доираи маҳдуди дидан мебошанд: private — танҳо дар дохили файл, internal — дар дохили модул.