偏函数collect
package chapter04 object test09 { def main(args:Array[String]):Unit={ val list = List(1,2,3,4,"abc") val list2: List[AnyVal] = list.map(x => { if (x.isInstanceOf[Int]) { x.asInstanceOf[Int] + 1 } }) println(list2) //List(2, 3, 4, 5, ()) val list3: List[AnyVal] = list2.filter(x=>x.isInstanceOf[Int]) println(list3) //List(2, 3, 4, 5) //TODO MAP def f1(n:Any):Boolean={n.isInstanceOf[Int]} def f2(n:Int):Int={n+1} def f3(n:Any):Int={n.asInstanceOf[Int]} val list4: List[Int] = list.filter(f1).map(f3).map(f2) println(list4) //TODO 偏函数1 val addOne3=new PartialFunction[Any,Int] { //Any参数类型,Int返回值类型 def isDefinedAt(any: Any): Boolean = { if(any.isInstanceOf[Int]) true else false } def apply(any:Any)=any.asInstanceOf[Int]+1 } //collect:满足条件的数据操作,map:对全部数据操作 val list5: List[Int] = list.collect(addOne3) println(list5) //TODO 偏函数2 def f4:PartialFunction[Any,Int]={ case i:Int=>i+1 } val list6: List[Int] = list.collect(f4) println(list6) //TODO 偏函数3 val list7: List[Int] = list.collect{case i:Int=>i+1} println(list7) } }
posted on 2020-08-14 11:28 happygril3 阅读(113) 评论(0) 收藏 举报
浙公网安备 33010602011771号