Dopasowanie wzorców w Kotlin jest dobre, a fakt, że nie wykonuje następnego dopasowania do wzorca jest dobry w 90% przypadków użycia.Instrukcja "Kiedy" vs Java "switch"
W Androidzie, gdy baza danych jest aktualizowana, używamy Java przełączyć właściwość, aby przejść na następny przypadku jeśli nie włożymy przerwę mieć kod patrząc tak:
switch (oldVersion) {
case 1: upgradeFromV1();
case 2: upgradeFromV2();
case 3: upgradeFromV3();
}
Więc jeśli ktoś ma app z w wersji 1 DB i opuścił wersję aplikacji z DB v2, dostanie cały potrzebny kod aktualizacji.
przeliczona na Kotlin, mamy bałagan jak:
when (oldVersion) {
1 -> {
upgradeFromV1()
upgradeFromV2()
upgradeFromV3()
}
2 -> {
upgradeFromV2()
upgradeFromV3()
}
3 -> {
upgradeFromV3()
}
}
Tutaj mamy tylko 3 wersji wyobrazić kiedy DB osiągnie wersję 19:/
Zresztą do marek, działając w taki sam sposób jak przełącznik? Próbowałem kontynuować bez szczęścia.
Właśnie natknąłem się na https://youtrack.jetbrains.com/issue/KT-771 jakiegokolwiek obejścia wtedy? –
Myślę, że statystycznie (bez dowodów, ale jestem pewien, że zespół Kotlin używał statystyk do podjęcia decyzji), że 'switch' w Javie prawie zawsze ma' break' w każdym przypadku, dlatego jest to niewygodne dla wspólnego przypadku. –