Оператор «When» против оператора «switch» Java
Сопоставление с образцом в Kotlin - это хорошо, и тот факт, что он не выполняет следующее сопоставление с образцом, хорошо в 90% случаев.
В Android, когда база данных обновляется, мы используем свойство переключателя Java, чтобы перейти к следующему случаю, если мы не ставим перерыв, чтобы код выглядел следующим образом:
switch (oldVersion) {
case 1: upgradeFromV1();
case 2: upgradeFromV2();
case 3: upgradeFromV3();
}
Поэтому, если у кого-то есть приложение с версией 1 БД и пропущена версия приложения с БД v2, он выполнит весь необходимый код обновления.
Преобразованный в Kotlin, мы получаем беспорядок как:
when (oldVersion) {
1 -> {
upgradeFromV1()
upgradeFromV2()
upgradeFromV3()
}
2 -> {
upgradeFromV2()
upgradeFromV3()
}
3 -> {
upgradeFromV3()
}
}
Здесь у нас всего 3 версии, представьте, когда БД достигнет версии 19: /
Во всяком случае, делает, когда действует так же, как переключатель? Я пытался продолжить без удачи.