定义偏函数

    1. val m1 = new PartialFunction[Int, Int] {
    2. override def isDefinedAt(x: Int): Boolean = {
    3. true
    4. }
    5. override def apply(v1: Int): Int = {
    6. v1 * 2
    7. }
    8. }

    使用偏函数

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