कोटलिन में पैटर्न मिलान अच्छा है और तथ्य यह है कि यह अगले पैटर्न मैच को निष्पादित नहीं करता है 90% उपयोग मामलों में अच्छा है।"कब" कथन बनाम जावा "स्विच" कथन
एंड्रॉयड में, जब डेटाबेस अद्यतन किया जाता है, हम जावा प्रॉपर्टी को बदलना कोड कि तरह लग रही है करने के लिए अगले मामले पर जाने के लिए अगर हम एक ब्रेक डाल नहीं का उपयोग करें:
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 संस्करण है, कल्पना जब डीबी संस्करण 19 तक पहुँच जाता है: जब से एक ही तरह से काम कर रहा बनाता करने के लिए वैसे भी/
Kotlin में बदल दिया है, हम एक गड़बड़ की तरह मिलता है स्विच? मैंने भाग्य के बिना जारी रखने की कोशिश की।
बस https://youtrack.jetbrains.com/issue/KT-771 पर तो किसी भी तरीके को ठोकर खाई? –
मुझे सांख्यिकीय रूप से लगता है (कोई सबूत नहीं, लेकिन मुझे यकीन है कि कोटलिन टीम ने आंकड़ों का फैसला करने के लिए आंकड़े इस्तेमाल किए हैं) कि जावा में 'स्विच' लगभग हर मामले में लगभग 'ब्रेक' होता है, इसलिए यह सामान्य मामले के लिए असुविधाजनक है। –