一、练习题目
//练习1:函数作为参数传入函数
//func实现传入Int返回函数f1
//f1实现传入一个字符串返回函数f2
//f2实现传入一个字符返回bool类型
//要求执行func(0)("")('0')返回false,其他情况返回true
//练习2:函数作为返回值
//ArrayElementOp实现:
//第一个参数传入Int类型数组
//第二个参数传入函数ElementAddVal
//返回一个Int类型数组
//ElementAddVal实现:
//传入两个int类型参数
//返回两数相加,类型为int
//测试数组:(1, 2, 3, 4, 5, 6)
//返回结果:(2, 4, 6, 8, 10, 12)
二、测试代码
object TestFuncParam {
def main(args: Array[String]): Unit = {
val TempArray: Array[Int] = Array(1, 2, 3, 4, 5, 6)
val NewArray: Array[Int] = ArrayElementOp(TempArray, ElementAddVal)
println(NewArray.mkString(" | "))
println(func(0)("")('0'))
println(func(1)("")('0'))
}
def ArrayElementOp(ParamArray: Array[Int], Func: (Int,Int) => Int): Array[Int] = {
for(i <- ParamArray) yield Func(i,i)
}
def ElementAddVal(Param1: Int, Param2: Int): Int = {
Param1 + Param2
}
def func(Param1: Int): String => (Char => Boolean) = {
def f1(Param2: String): Char => Boolean = {
def f2(Param3: Char): Boolean = {
if(Param1 == 0 && Param2 == "" && Param3 == '0'){
false
}
else {
true
}
}
f2
}
f1
}
}
三、测试结果
[root@node0 test]
2 | 4 | 6 | 8 | 10 | 12
false
true