Kết hợp mẫu trong Kotlin rất đẹp và thực tế nó không thực hiện khớp mẫu tiếp theo là tốt trong 90% trường hợp sử dụng.Câu lệnh "Khi" tuyên bố so với Java "chuyển đổi"
Trong Android, khi cơ sở dữ liệu được cập nhật, chúng tôi sử dụng Java chuyển tài sản để đi về trường hợp tiếp theo nếu chúng ta không đặt một break để có mã tìm kiếm như thế:
switch (oldVersion) {
case 1: upgradeFromV1();
case 2: upgradeFromV2();
case 3: upgradeFromV3();
}
Vì vậy, nếu ai đó có một ứng dụng với phiên bản 1 của DB và bỏ lỡ phiên bản ứng dụng với DB v2, anh ta sẽ nhận được tất cả mã nâng cấp cần thiết được thực hiện.
Converted để Kotlin, chúng tôi có được một mớ hỗn độn như:
when (oldVersion) {
1 -> {
upgradeFromV1()
upgradeFromV2()
upgradeFromV3()
}
2 -> {
upgradeFromV2()
upgradeFromV3()
}
3 -> {
upgradeFromV3()
}
}
Ở đây chúng ta chỉ có 3 phiên bản, hãy tưởng tượng khi DB đạt phiên bản 19:/
Dù sao để làm cho khi diễn xuất trong cùng một cách hơn công tắc điện? Tôi đã cố gắng tiếp tục mà không có may mắn.
Chỉ cần vấp trên https://youtrack.jetbrains.com/issue/KT-771 bất kỳ cách giải quyết sau đó? –
Tôi nghĩ thống kê (không có bằng chứng, nhưng tôi chắc rằng nhóm Kotlin đã sử dụng số liệu thống kê để quyết định) rằng 'chuyển đổi 'trong Java hầu như luôn có' ngắt' trong mỗi trường hợp, do đó nó là bất tiện cho trường hợp thông thường. –