File: t7715.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (24 lines) | stat: -rw-r--r-- 648 bytes parent folder | download | duplicates (4)
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
  })
}