the following code defines an extractor object Twice. The pattern case Twice(n)
will cause an invocation of Twice.unapply
object Twice {
def apply(x: Int): Int = x * 2
def unapply(z: Int): Option[Int] = if (z%2 == 0) Some(z/2) else None
}
object TwiceTest extends App {
val x = Twice(21)
x match { case Twice(n) => Console.println(n) } // prints 21
}
status | not read | reprioritisations | ||
---|---|---|---|---|
last reprioritisation on | suggested re-reading day | |||
started reading on | finished reading on |