TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.12K subscribers
Post #1051 5.97K
When и Guard Conditions
#kotlin

С релизом Kotlin 2.1.0 появился апдейт для when — guard conditions. Эта новая фича улучшает читаемость кода, делая его более наглядным.
Давайте рассмотрим на примере, что она делает.

Предположим, есть базовый класс для получения ответа от сервера:

sealed interface HttpResult {
data class Success(val response: String) : HttpResult
data class Failed(val statusCode: Int) : HttpResult
}


Если включить Guard Conditions, то проверка в when специальных юзкейсов будет выглядеть так:

when (response) {
is HttpResult.Success -> println("Success")
is HttpResult.Failed if response.statusCode == 503 -> println("Maintenance")
is HttpResult.Failed -> println("Failed with code ${response.statusCode}")
}


Как мы видим, одну ошибку от бэка мы обработали без добавления if внутри условия:

when (response) {
is HttpResult.Success -> println("Success")
is HttpResult.Failed -> {
if (response.statusCode == 503) {
println("Maintenance")
} else {
println("Failed with code ${response.statusCode}")
}
}
}


Похоже, что стало удобнее, но нужно попробовать на практике.
Чтобы включить фичу, надо убедиться, что K2 Compiler включен, а потом добавить опцию:

kotlin {
compilerOptions {
freeCompilerArgs.add("-Xwhen-guards")
}
}


Чуть больше информации можно найти тут.
  • ❤ 13
  • 👍 9
  • 👎 3
  • 🤔 3
More from @android_live
  1. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
  2. Sep 25, 2026Похоже, есть что посмотреть на выходных Недавно вышло интервью с Женей Вороновым Jake Whar…
  3. Sep 15, 2026Google выкатили ARTEMIS Эта инструмент, который превращает обычный текст в реальные действ…
  4. Sep 14, 2026Кстати, вчера забыл про очень важный день... День погонщиков нейронок программиста! С наши…
  5. Sep 11, 2026Новый iPhone вышел на днях, вы помните? Наверное, самым ярким вау-эффектом после презентац…
  6. Sep 1, 2026Про Encrypted Client Hello На днях Google выпустил отличную новость для любителей шапочки…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →