scala的模式匹配数量是否有任何限制?

zjf*_*fdu 5 scala pattern-matching

我在scala中遇到了一个奇怪的模式匹配问题.以下代码将抱怨编译错误.但如果我删除一个case语句,它将成功编译.所以有两件事困扰着我.一个是看起来scala的最大模式匹配数是9.另一个是错误消息,我没有在这个项目中使用sbt,我在另一个项目中使用它.有人可以帮帮我吗?

SBT构建器在编译项目时崩溃了.这是Scala编译器或SBT中的错误.检查Erorr日志以获取详细信息.错误消息是:ch.epfl.lamp.fjbg.JCode $ OffsetTooBigException:偏移太大而不适合16位:38092 scala未知Scala问题

 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() =>
    }
  }
Run Code Online (Sandbox Code Playgroud)

dhg*_*dhg 10

是.案件数量有限.但是,我相信这将通过2.10中的新虚拟模式匹配器来解决.

解决问题的最简单方法就是将模式匹配分成多个嵌套的匹配级别.