Scala:使用带有隐式期望字符串上下文的字符串参数



我已经实现了这个解决方案:https://stackoverflow.com/a/23115778/4631376(第二个是隐式类)我尝试将"ci"与字符串参数一起使用,而不是使用文字字符串

implicit class CaseInsensitiveRegex(sc: StringContext) {
   def ci = ("(?i)" + sc.parts.mkString).r
}
 def Refiner(uid: String) = new ActionRefiner[Input, Output] {
     override protected def refine[A](request: Input[A]): Future[Either[Result, Output[A]]] = {
       uid match {
            case ci"${request.auid}" => Future.successful(Right(new Output[A](request.auid, request)))
  }
}

}

但它似乎不起作用,因为字符串上下文"sc"是空的。并且它应该包含"request.auid"的内容

它可以很好地处理文本字符串(发送类似"abcabc"的内容)。

想法?

一个普通提取器看起来像一个应用case X(x),但它没有获取值,而是绑定名称x。当插值被取消时也是如此。

请参阅scala黑客博客,以及如何利用Dynamic进行参数化提取器。

相关内容

最新更新