scala

# PartialFunction

#### object PartialFunction

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 }```
Since

2.8

Linear Supertypes
AnyRef, Any
Ordering
1. Alphabetic
2. By inheritance
Inherited
1. PartialFunction
2. AnyRef
3. Any
1. Hide All
2. Show all
Visibility
1. Public
2. All

### Value Members

1. #### final def !=(arg0: Any): Boolean

Definition Classes
AnyRef → Any
2. #### final def ##(): Int

Definition Classes
AnyRef → Any
3. #### final def ==(arg0: Any): Boolean

Definition Classes
AnyRef → Any
4. #### def apply[A, B](f: (A) ⇒ B): PartialFunction[A, B]

Converts ordinary function to partial one

Converts ordinary function to partial one

Since

2.10

5. #### final def asInstanceOf[T0]: T0

Definition Classes
Any
6. #### def clone(): AnyRef

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
( ... )
7. #### def cond[T](x: T)(pf: PartialFunction[T, Boolean]): Boolean

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.

x

the value to test

pf

the partial function

returns

true, iff `x` is in the domain of `pf` and `pf(x) == true`.

8. #### def condOpt[T, U](x: T)(pf: PartialFunction[T, U]): Option[U]

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.

x

the value to test

pf

the PartialFunction[T, U]

returns

`Some(pf(x))` if `pf isDefinedAt x`, `None` otherwise.

9. #### def empty[A, B]: PartialFunction[A, B]

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.

Since

2.10

10. #### final def eq(arg0: AnyRef): Boolean

Definition Classes
AnyRef
11. #### def equals(arg0: Any): Boolean

Definition Classes
AnyRef → Any
12. #### def finalize(): Unit

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
( classOf[java.lang.Throwable] )
13. #### final def getClass(): Class[_]

Definition Classes
AnyRef → Any
14. #### def hashCode(): Int

Definition Classes
AnyRef → Any
15. #### final def isInstanceOf[T0]: Boolean

Definition Classes
Any
16. #### final def ne(arg0: AnyRef): Boolean

Definition Classes
AnyRef
17. #### final def notify(): Unit

Definition Classes
AnyRef
18. #### final def notifyAll(): Unit

Definition Classes
AnyRef
19. #### final def synchronized[T0](arg0: ⇒ T0): T0

Definition Classes
AnyRef
20. #### def toString(): String

Definition Classes
AnyRef → Any
21. #### final def wait(): Unit

Definition Classes
AnyRef
Annotations
( ... )
22. #### final def wait(arg0: Long, arg1: Int): Unit

Definition Classes
AnyRef
Annotations
( ... )
23. #### final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
( ... )