Mustererkennung in Kotlin ist nett und die Tatsache, dass es nicht nächste Musterübereinstimmung führt, ist gut in 90% der Anwendungsfälle."When" Anweisung vs Java "switch" Anweisung
In Android, wenn Datenbank aktualisiert wird, verwenden wir Java-Eigenschaft einschalten nächsten Fall zu gehen, wenn wir Code wie die Suche nicht eine Pause gesetzt haben:
switch (oldVersion) {
case 1: upgradeFromV1();
case 2: upgradeFromV2();
case 3: upgradeFromV3();
}
Also, wenn jemand eine App hat mit Version 1 der DB und verpasste die App-Version mit DB v2, er wird alle benötigten Upgrade-Code ausgeführt.
Umgerechnet auf Kotlin, bekommen wir ein Chaos wie:
when (oldVersion) {
1 -> {
upgradeFromV1()
upgradeFromV2()
upgradeFromV3()
}
2 -> {
upgradeFromV2()
upgradeFromV3()
}
3 -> {
upgradeFromV3()
}
}
Hier haben wir nur 3-Version haben, vorstellen, wenn DB-Version erreicht 19:/
Auf jeden Fall macht, wenn in gleicher Weise wirkt als Schalter? Ich habe es weiter ohne Glück versucht.
stolperte auf https://youtrack.jetbrains.com/issue/KT-771 jede Abhilfe dann? –
Ich denke statistisch (keine Beweise, aber ich bin mir sicher, dass das Kotlin-Team Statistiken verwendet hat), dass ein 'Switch' in Java fast immer eine 'Pause' hat, daher ist es unbequem für den allgemeinen Fall. –