2

假设我有如下代码:

val pf: PartialFunction[String, Unit] =
  "string" match { case regex(g1, g2, _*) =>
    function(g1, g2)
  }

pf有方法isDefinedAtapply. 正则表达式搜索是否会被评估一次,isDefinedAt或者这项工作将被完成两次?

如果一次,如何将参数g1, g2传递给apply方法?

4

1 回答 1

1

正则表达式将被评估一次。工作在提取器中完成,Regex.unapplySeq。提取器的返回类型是Option[List[String]]它知道正则表达式是否匹配(SomeNone)和捕获的组(List[String])是否都在一个包中。

于 2015-12-23T04:31:07.197 回答