💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
偏函数是只对函数定义域的一个子集进行定义的函数,并对这个子集的元素做相应的处理。 <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) ```