定义偏函数
val m1 = new PartialFunction[Int, Int] {
override def isDefinedAt(x: Int): Boolean = {
true
}
override def apply(v1: Int): Int = {
v1 * 2
}
}
使用偏函数
val list = List[1,2,3,4]
val list2 = list.map(m1)
高级用法:
val list = List[1,2,3,4]
val list3 = list.map{
case (x:Int) => x * 2
}
scala中,case语句会自动转换成一个偏函数
比如:
{
case (x:Int) => x * 2
}
就相当于:
new PartialFunction[Int, Int] {
override def isDefinedAt(x: Int): Boolean = {
true
}
override def apply(v1: Int): Int = {
v1 * 2
}
}