scala偏函数
scala提供了一个PartialFunction偏函数的特质,可以对集合进行条件过滤之后操作,相当于filter+map操作,
例如:将某个包含有多种数据类型的集合进行筛选,选出Int类型进行操作
PartialFunction特质中有两个抽象的方法需要进行实现,isDefinedAt方法就是判断元素是否符合条件,只有符合条件的才会去执行apply方法
1 | // 偏函数的两个泛型,第一个泛型是入参的类型,第二个泛型是返参的类型 |
定义了偏函数之后,通过collect来使用偏函数
1 | val list = List(1,"a",2.5,4.6f,"b",24) |
由于声明偏函数只需要实现isDefinedAt和apply方法,就类似于模式匹配中的类型匹配,所以声明偏函数可以简写为
1 | def partFun1 : PartialFunction[Any,Int] = { |