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