最佳答案
Kotlin 的模式匹配很好,而且90% 的用例中它不执行下一个模式匹配的情况都很好。
在 Android 中,当数据库更新时,如果我们没有中断代码,我们使用 Java switch 属性继续下一个例子:
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个版本,想象一下当 DB 达到19版本。
反正做的时候都是一样的,然后就换了? 我试着继续不走运的做下去。