2012-03-19 36 views
5

Tôi gặp một vấn đề lạ về khớp mẫu trong scala. Mã sau đây sẽ khiếu nại lỗi biên dịch. Nhưng nếu tôi loại bỏ một tuyên bố trường hợp, nó sẽ biên dịch thành công. Vì vậy, có hai điều làm tôi bối rối. Một là nó trông giống như mô hình tối đa phù hợp với số scala là 9. Một điều nữa là thông báo lỗi, tôi không sử dụng sbt trong dự án này, tôi sử dụng nó trong một dự án khác. Bất cứ ai cũng có thể giúp tôi?Có bất kỳ giới hạn nào về số lượng mẫu khớp với scala không?

Trình tạo SBT bị lỗi khi biên soạn dự án của bạn. Đây là lỗi trong trình biên dịch Scala hoặc SBT. Kiểm tra Nhật ký Erorr để biết chi tiết. Thông báo lỗi là: ch.epfl.lamp.fjbg.JCode $ OffsetTooBigException: bù đắp quá lớn để phù hợp với 16 bit: 38.092 scala Unknown Scala Vấn đề

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() => 
    } 
    } 

Trả lời

10

Yes. Có giới hạn về số lượng các trường hợp. Tuy nhiên, tôi tin rằng điều này sẽ được sửa với virtual pattern matcher mới trong phiên bản 2.10.

Cách dễ nhất xung quanh vấn đề là chỉ chia mẫu của bạn khớp với nhiều cấp độ phù hợp được lồng nhau.

+0

Đã xác nhận đã xác nhận với bản dựng hàng đêm mới nhất. – rxg

Các vấn đề liên quan