A few handy operations which leverage the extra bit of information available in partial functions.
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
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
xis in the domain ofpfandpf(x) == true.
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,Noneotherwise.
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.