Middle
Ի՞նչ նպատակով են օգտագործվում տվյալների դասերը և seal դասերը Kotlin-ում:
sobes.tech AI
Պատասխան AI-ից
Տվյալների դասերը հեշտացնում են միայն տվյալների պահեստավորման համար նախատեսված դասերի ստեղծումը։ Կոմպիլատորը ավտոմատորեն ստեղծում է դրանց համար.
equals()hashCode()toString()copy()componentN()դիստրակտուրացման համար
տվյալների դասակ User(val անուն: String, val տարի: Int)
// Օգտագործում
val user = User("Alice", 30)
println(user) // Ցուցադրում է User(անուն=Alice, տարի=30)
val user2 = user.copy(տարի = 31)
val (անուն, տարի) = user // Դիստրակտուրացում
Փակ դասերը (sealed) ներկայացնում են սահմանափակ դասերի հիերարխիա, որտեղ բոլոր հնարավոր ենթակլասները հայտնի են կոմպիլյացիայի ժամանակ։ Սա թույլ է տալիս օգտագործել դրանք when արտահայտություններում առանց else բլոկի, ինչը ապահովում է բոլոր տարբերակների լրիվ ստուգում։
փակ դաս Result {
տվյալներ դաս Success(val տվյալներ: String) : Result()
տվյալներ դաս Error(val հաղորդագրություն: String) : Result()
օբյեկտ Loading : Result() // Օբյեկտ, քանի որ առանց պարամետրերի
}
fun handleResult(result: Result) {
when (result) {
is Result.Success -> println("Հաջողություն: ${result.տվյալներ}")
is Result.Error -> println("Սխալ: ${result.հաղորդագրություն}")
Result.Loading -> println("Բեռնվում...")
}
}
Համեմատություն:
| Գծագիր | Տվյալների դաս | Փակ դաս |
|---|---|---|
| Օգտագործում | Տվյալների պահպանում | սահմանափակ դասերի հիերարխիա |
| Հնարավորություններ | ավտոմատ մեթոդների ստեղծում | լրիվ ստուգում when-ում |
| ենթակլասներ | առանց հատուկ սահմանափակումների | պետք է լինեն նույն ֆայլում կամ մոդուլում |
| Օգտագործում | Տվյալների մոդելներ, DTO-ներ | վիճակների, իրադարձությունների, տարբերակների ներկայացում |