"When" -Anweisung vs Java "switch" -Anweisung

Pattern Matching in Kotlin ist nett und die Tatsache, dass es keinen nächsten Pattern Match ausführt, ist in 90% der Anwendungsfälle gut.

Wenn in Android die Datenbank aktualisiert wird, verwenden wir die Java-Switch-Eigenschaft, um mit dem nächsten Fall fortzufahren, wenn kein Umbruch erfolgt, damit der Code so aussieht:

switch (oldVersion) {
    case 1: upgradeFromV1();
    case 2: upgradeFromV2(); 
    case 3: upgradeFromV3();
}

Wenn jemand eine App mit Version 1 der DB hat und die App-Version mit DB v2 verpasst hat, wird er den gesamten erforderlichen Upgrade-Code ausführen lassen.

Converted to Kotlin, wir bekommen ein Durcheinander wie:

when (oldVersion) {
    1 -> {
        upgradeFromV1()
        upgradeFromV2()
        upgradeFromV3()
    }
    2 -> {
        upgradeFromV2()
        upgradeFromV3()
    }
    3 -> {
        upgradeFromV3()
    }
}

Hier haben wir nur 3 Version, stellen Sie sich vor, wenn DB Version 19 erreicht: /

Anyway to make beim handeln genauso wie wechseln? Ich habe ohne Glück versucht weiterzumachen.

Antworten auf die Frage(20)

Ihre Antwort auf die Frage