Назад к вопросам
Junior — Middle
68
Можно ли использовать оператор when для обработки не всех подклассов sealed класса?
Ответ от нейросети
sobes.tech AI
В Kotlin, если у вас есть sealed класс, оператор when при проверке всех его подклассов может использоваться без ветки else, так как компилятор знает все возможные варианты. Однако, если вы не обрабатываете все подклассы sealed класса в when, то компилятор потребует добавить ветку else для обработки пропущенных случаев.
То есть, можно использовать when для обработки не всех подклассов, но тогда обязательно нужна ветка else.
Пример:
sealed class Result {
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
}
fun handle(result: Result) {
when (result) {
is Result.Success -> println("Success: ${result.data}")
else -> println("Что-то другое") // обязательно, если не все подклассы обработаны
}
}
Если же обработать все подклассы, else не нужен.