კოტლინში დახურული კლასები რა არის და როგორ გამოიყენება
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 — მოდულში.