A few handy operations which leverage the extra bit of information available in partial functions. Examples:
import PartialFunction._
def strangeConditional(other: Any): Boolean = cond(other) {
case x: String if x == "abc" || x == "def" => true
case x: Int => true
}
def onlyInt(v: Any): Option[Int] = condOpt(v) { case x: Int => x }
- Companion
- class
- Source
- PartialFunction.scala
Type members
Classlikes
Value members
Concrete methods
Creates a Boolean test based on a value and a partial function.
Creates a Boolean test based on a value and a partial function. It behaves like a 'match' statement with an implied 'case _ => false' following the supplied cases.
- Value Params
- pf
the partial function
- x
the value to test
- Returns
true, iff
x
is in the domain ofpf
andpf(x) == true
.- Source
- PartialFunction.scala
Transforms a PartialFunction[T, U] pf
into Function1[T, Option[U]] f
whose result is Some(x)
if the argument is in pf
's domain and None
otherwise, and applies it to the value x
.
Transforms a PartialFunction[T, U] pf
into Function1[T, Option[U]] f
whose result is Some(x)
if the argument is in pf
's domain and None
otherwise, and applies it to the value x
. In effect, it is a
match
statement which wraps all case results in Some(_)
and
adds case _ => None
to the end.
- Value Params
- pf
the PartialFunction[T, U]
- x
the value to test
- Returns
Some(pf(x))
ifpf isDefinedAt x
,None
otherwise.- Source
- PartialFunction.scala
The partial function with empty domain.
The partial function with empty domain. Any attempt to invoke empty partial function leads to throwing scala.MatchError exception.
- Source
- PartialFunction.scala
Converts an ordinary function to a partial function.
Converts an ordinary function to a partial function. Note that calling isDefinedAt(x)
on
this partial function will return true
for every x
.
- Value Params
- f
an ordinary function
- Returns
a partial function which delegates to the ordinary function
f
- Source
- PartialFunction.scala