偏函数

偏函数不是函数,而是一个triat

首先来看下偏函数的定义

Demo

def main(args: Array[String]): Unit = {
    val list = List(1,3,4,5,"lits")


    // 输入的 是 Any ,返回的 Int
    // 如果返回true,则调用apply 创建对象实例,如果返回false,过滤
    val partialFunction = new PartialFunction[Any,Int] {
      override def isDefinedAt(x: Any): Boolean =  x.isInstanceOf[Int]

      // 对 传入 的值加 1 返回
      override def apply(v1: Any): Int = {
        v1.asInstanceOf[Int] + 1
      }
    }

    // 如果使用 偏函数,就要使用 collect
    // 遍历 list ,如果 true ,调用 apply,如果 false,不调用。
    val list2 = list.collect(partialFunction)
    println(list2)

  }

Last updated