多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
偏函数是只对函数定义域的一个子集进行定义的函数,并对这个子集的元素做相应的处理。 <br/> 偏函数由Scala的`trait PartialFunction[-A, +B]`实现,`A`为函数定义域,`B`为偏函数的返回值。 <br/> 常用核心方法:`isDefinedAt`和`apply`。 * `isDefinedAt`:用来告知调用方这个偏函数接受参数的范围,可以是类型也 可以是值; * `apply`:用来描述对已接受的值如何处理; ```scala // 自定义偏函数,需要new PartialFunction对象 val inc = new PartialFunction[Any, Int] { override def isDefinedAt(x: Any): Boolean = { // x 是不是Int类型 if (x.isInstanceOf[Int]) true else false } // asInstanceOf表示强制类型转换 override def apply(v1: Any): Int = v1.asInstanceOf[Int] + 1 } // collect:遍历集合中的每个元素,并将每个元素交给偏函数处理 println(List(1, 2, 3, "four").collect(inc)) // List(2, 3, 4) ``` ```scala // case语句的偏函数 val pf: PartialFunction[Any, Int] = { case x: Int => x + 1 } println(List(1, 2, 3, "four").collect(pf)) // List(2, 3, 4) ```