Kotlin中的模式匹配很好,而且它不执行下一次模式匹配的事实在90%的用例中很好。“When”声明与Java“switch”声明
在Android中,当数据库被更新时,我们使用Java切换属性去下一个情况下,如果我们不把休息有代码看这样的:
switch (oldVersion) {
case 1: upgradeFromV1();
case 2: upgradeFromV2();
case 3: upgradeFromV3();
}
因此,如果有人有一个应用程序版本1的数据库并且错过了使用数据库v2的应用程序版本,他将获得所有必需的升级代码。
转换为科特林,我们得到了一个烂摊子,如:
when (oldVersion) {
1 -> {
upgradeFromV1()
upgradeFromV2()
upgradeFromV3()
}
2 -> {
upgradeFromV2()
upgradeFromV3()
}
3 -> {
upgradeFromV3()
}
}
这里,我们只有3版本,想象一下当DB达到19版:以同样的方式不是演戏的时候/
反正品牌开关?我尝试继续没有运气。
只是偶然在https://youtrack.jetbrains.com/issue/KT-771那么什么解决办法? –
我认为在统计学上(没有证据,但我确定Kotlin团队使用统计数据来判断)Java中的“switch”几乎总是有一个“break”,因此这对常见情况来说很不方便。 –