Junior — Middle
Използвали ли сте sealed class в проектите си?
sobes.tech AI
Отговор от AI
Да, в проекти на Kotlin за Android съм използвал sealed class за моделиране на ограничени йерархии на състояния или събития. Sealed class позволява да дефинирате набор от подкласове, които са известни по време на компилация, което улеснява обработката чрез when без необходимост да пишете клон else.
Пример за използване на sealed class за описание на състояния на зареждане:
sealed class LoadState {
object Loading : LoadState()
data class Success(val data: List<String>) : LoadState()
data class Error(val error: Throwable) : LoadState()
}
fun handleState(state: LoadState) {
when(state) {
is LoadState.Loading -> println("Зареждане...")
is LoadState.Success -> println("Данните са получени: ${state.data}")
is LoadState.Error -> println("Грешка: ${state.error.message}")
}
}
Това помага да направите кода по-безопасен и четим, особено при работа със състояния на UI или резултати от операции.