Вторая версия работает, потому что вы можете перечислить несколько условий, которые будут выполнять одну и ту же ветку кода.in "C".."Z"
является условием для значения, находящегося в диапазоне, в то время как "z"
является условием для значения, являющегося точно "z"
.
Вы также можете делать то, что искали, если вы перечисляетедва диапазона условий отдельно:
when(x) {
in "C".."Z", in "c".."z" -> {
/* Runs when value is in either range */
}
2, 4, 9 -> {
/* Another example of multiple conditions for the same
branch (only one has to match, of course) */
}
}