blob: 0ad39130163e93f1f5725a6a8360496f670e9e81 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import PartialFunction.cond
import util._
object Test extends App {
object I { def unapply(x: String): Option[Int] = Try(x.toInt).toOption }
implicit class RX(val sc: StringContext) {
def rx = sc.parts.mkString("(.+)").r
}
Console println ("2 by 4" match {
case rx"${I(a)} by ${I(b)}" => a+b
case _ => -1
})
Console println ("2 by 4" match {
case rx"${_} by ${I(b)}" => b // pattern placeholder
case _ => -1
})
Console println ("2 by 4" match {
case rx"$_ by ${I(b)}" => b // is permitted this way, too
case _ => -1
})
}
|