假设我有一个这样的代码:
val pf: PartialFunction[String, Unit] =
"string" match { case regex(g1, g2, _*) =>
function(g1, g2)
}
pf
有方法isDefinedAt
和apply
。正则表达式搜索是一次性评估一次,isDefinedAt
点,还是工作将完成两次?
如果一次,参数g1, g2
如何传递给apply
方法?
正则表达式将被评估一次。工作在提取器中完成,Regex.unapplySeq
.提取器的返回类型是Option[List[String]]
,因此它知道正则表达式是匹配的(Some
还是None
(和捕获的组(List[String]
(都在一个捆绑包中。