`when` może zwracać wartość (jest wyrażeniem). “Exhaustive” oznacza, że obsłużone są wszystkie możliwe przypadki, więc nie potrzebujesz `else`. Dla `enum` i `sealed class` kompilator potrafi to sprawdzić i zmusi Cię do obsłużenia nowych przypadków, gdy typ się rozbuduje.
Rozwinięcie krótkiej odpowiedzi — co zwykle ma znaczenie w praktyce:
Krótki przykład (szablon do wyjaśniania):
// Example: discuss trade-offs for "`when`-jako-wyrażenie:-co-znaczy,-że-jest-wyczer"
function explain() {
// Start from the core idea:
// `when` może zwracać wartość (jest wyrażeniem). “Exhaustive” oznacza, że obsłużone są wszys
}