defmain(args: Array[String]): Unit = { val list = List(1,2,3,"123",true)
//定义偏函数 //偏函数的意思就是满足 isDefinedAt方法的元素,执行apply //偏爱! val f = newPartialFunction[Any,Int] { overridedefisDefinedAt(x: Any): Boolean = x.isInstanceOf[Int]
overridedefapply(v1: Any): Int = v1.asInstanceOf[Int] }
val res= list.collect(f)
println(res) //List(1, 2, 3) }
简单版
1 2 3 4 5 6 7 8 9 10 11 12
objectPartialDemo2{
defmain(args: Array[String]): Unit = { val list = List(1,2,3,"123",true)
val a = list.collect({ case a:Int =>a case _=>0 }) println(a) } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
objectPartialDemo3{
defmain(args: Array[String]): Unit = { val m = Map(1->"a",2->"b") m.foreach(x=>{ println(x._1) println(x._2) }) //偏函数 m.foreach({ case (a,b)=> println(a) })
} }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
//偏函数 objectPartialDemo4{
defmain(args: Array[String]): Unit = { val list = List((1, (2, 3)), (4, (5, 7)))
//想获取2和5 //可读性高 val res1 = list.map(_._2._1) val res2 = list.map({ case (a, (b, c)) => b })