Kotlin 'when' statement vs Java 'switch'
2022-09-02 14:13:28
Kotlin 中的模式匹配很不错,在 90% 的用例中,它不执行下一个模式匹配的事实很好。
在 Android 中,当数据库更新时,如果我们不中断以使代码如下所示,我们将使用 Java switch 属性继续下一个案例:
switch (oldVersion) {
case 1: upgradeFromV1();
case 2: upgradeFromV2();
case 3: upgradeFromV3();
}
因此,如果有人的应用程序具有 DB 版本 1,并且错过了 DB v2 的应用程序版本,他将执行所有必需的升级代码。
转换为 Kotlin 后,我们会得到如下混乱:
when (oldVersion) {
1 -> {
upgradeFromV1()
upgradeFromV2()
upgradeFromV3()
}
2 -> {
upgradeFromV2()
upgradeFromV3()
}
3 -> {
upgradeFromV3()
}
}
这里我们只有3个版本,想象一下当DB达到版本19时。
无论如何,当以同样的方式行事时,那么切换?我试图在没有运气的情况下继续前进。