В kotlin, when
для объекта запечатанного класса не требуется else
, если охвачены все возможные внутренние случаи.
Образец запечатанного класса :
sealed class A {
object B: A()
object C: A()
}
Пусть приведенный выше будет запечатанным классом, тогда любой object
класса A
(скажем, a
) может быть использован внутри, когда он исчерпывающе (не обязательно) при возврате
return when(a) {
is A.B -> return something
is A.C -> return something
} // no need of else here as all cases are covered.
Здесь есть одна загвоздка, если вам просто нужно проверить одно условие, скажем, is A.B
вы можете написать другое. Также обратите внимание, что вам нужно НЕ написать исчерпывающие условия / else, если это просто утверждение.
Пример ниже:
some code ...
when(a) {
is A.B -> do some task
}
more code ...
Надеюсь, это поможет !!