Оператор «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: /

Во всяком случае, делает, когда действует так же, как переключатель? Я пытался продолжить без удачи.

Ответы на вопрос(10)

Ваш ответ на вопрос