package day02
object ScalaPartialFunction {
def func(str : String): Int = {
if(str.equals("a")) 97
else 0
}
/**
* 偏函数: PartialFunction[参数的类型,返回值类型]
*/
def func1: PartialFunction[String, Int] = {
case "a" => 97
case _ => 0
}
// def f1: PartialFunction[Int, Int] ={
def f1: PartialFunction[Any, Int] ={
case i: Int => i * 10
}
def main(args: Array[String]): Unit = {
println(func("a"))
println(func1("b"))
// var arr = Array(1,2,3,4)
var arr = Array[Any](1,2,3,4,"hello")
var arr1 = Array[Int](1,2,3,4)
val collect = arr.collect(f1)
arr1.map(x => x * 10)
arr1.map((x: Int) => x * 10)
arr1.map(x => x * 10)
arr1.map{case x: Int => x*10}//编译器在编译的时候会转换成偏函数
arr1.map(_ * 10)//_代表数组中的每一个元素
println(collect.toBuffer)
}
}