2012-03-19 17 views
5

मैं स्कैला में मिलान पैटर्न की एक अजीब समस्या को पूरा करता हूं। निम्नलिखित कोड संकलन त्रुटि शिकायत करेगा। लेकिन अगर मैं एक केस स्टेटमेंट हटा देता हूं, तो यह सफलतापूर्वक संकलित होगा। तो दो चीजें मुझे भ्रमित कर रही हैं। एक ऐसा लगता है कि यह स्केल की अधिकतम पैटर्न मिलान संख्या 9 की तरह दिखता है। एक और बात त्रुटि संदेश है, मैंने इस परियोजना में एसबीटी का उपयोग नहीं किया है, मैं इसे किसी अन्य प्रोजेक्ट में उपयोग करता हूं। कोई मुझे मदद कर सकता है ?क्या स्कैला के पैटर्न मिलान संख्या पर कोई सीमा है?

आपकी परियोजना को संकलित करते समय एसबीटी निर्माता क्रैश हो गया। यह स्कैला कंपाइलर या एसबीटी में एक बग है। विवरण के लिए एरोर लॉग देखें। त्रुटि संदेश है: ch.epfl.lamp.fjbg.JCode $ OffsetTooBigException: ऑफसेट भी 16 बिट में फिट करने के लिए बड़ा: 38,092 स्केला अज्ञात स्काला समस्या

def main(args: Array[String]) { 
    val list = List(1, 2, 3) 

    import scala.collection.JavaConversions._ 
    val pattern_1 = """1""".r 
    val pattern_2 = """1""".r 
    val pattern_3 = """1""".r 
    val pattern_4 = """1""".r 
    val pattern_5 = """1""".r 
    val pattern_6 = """1""".r 
    val pattern_7 = """1""".r 
    val pattern_8 = """1""".r 
    val pattern_9 = """1""".r 
    val pattern_10 = """1""".r 

    "ffd,fa".split(",") foreach { 
     case pattern_1() => 
     case pattern_2() => 
     case pattern_3() => 
     case pattern_4() => 
     case pattern_5() => 
     case pattern_6() => 
     case pattern_7() => 
     case pattern_8() => 
     case pattern_9() => 
    } 
    } 

उत्तर

10

हां। मामलों की संख्या के लिए एक सीमा है। हालांकि, मुझे विश्वास है कि यह 2.10 में नए virtual pattern matcher के साथ तय किया जाएगा।

समस्या के चारों ओर सबसे आसान तरीका सिर्फ अपने पैटर्न को मैचों के कई घोंसला वाले स्तरों में विभाजित करना है।

+0

नवीनतम रात के निर्माण के साथ पुष्टि की पुष्टि की। – rxg

संबंधित मुद्दे