作用
- 扩展函数的功能
- 提高函数的灵活度
需求
定义一个函数,传入数组类型的参数和一个函数,对数组中每个值分别进行运算后返回。
代码
// 函数类型的参数声明格式: 函数名: (参数类型) => 返回值类型
def fun(arr: Array[Int], op: (Int) => Int): Array[Int] = {
for (elem <- arr) yield op(elem)
}
def addOne(x: Int): Int = {
x + 1
}
// 一般方式调用
val res1: Array[Int] = fun(Array(1, 2, 3, 4, 5), addOne)
println(res1.mkString(","))
// 匿名函数方式调用 (参数列表) => {函数体}
val res2: Array[Int] = fun(Array(1, 2, 3, 4, 5), (x: Int) => {x + 1})
println(res2.mkString(","))
// 匿名函数简化
val res3: Array[Int] = fun(Array(1, 2, 3, 4, 5), x => x *2)
println(res3.mkString(","))
// 再简化
val res4: Array[Int] = fun(Array(1, 2, 3, 4, 5), _ * 3)
println(res4.mkString(","))