when — мощный pattern-matching: по значению, диапазону, типу (is), с несколькими ветками; для sealed часто exhaustive.
Разбор
- Может быть expression (возвращает значение) или statement.
- Ветки
in, is, константы, else.
- Заменяет switch из Java и сложные if-else.
- Без else на sealed — компилятор проверяет полноту.
Итог
when — основной инструмент ветвления в идиоматичном Kotlin.