scala-高阶函数

//1类似于lambda表达式的函数直接量======================
var get = (name: String) => {
println(123 + name)
} get("456") //2高阶函数:func为传入的参数(String为func的参数类型,Unit为func的返回类型)======================
def get1(func: (String) => Unit, name: String) {
func(name)
} def func1(x: String) = {
println(123 + x)
}
get1(func1, "p") //3高阶函数, 返回一个函数======================
def get2(num: Int = 123): (String) => Unit = {
(x1: String) => println(num + "+" + x1)
}
//解法1
var ret_func = get2(666)
ret_func("2k")
//解法2,currying函数概念(使用了“闭包”就是变量num)
get2(666)("3k")
println((1 to 5).map(_ + 1)) //对每个元素+1操作
println((1 to 5).filter(_ % 2 == 0)) //过滤

println((1 to 5).reduce(_ + _)) //累加

println((1 to 5).sortWith(_ > _)) //大的数排在左边

//return的用法======================
def get3(x: Int): Int = {
def get4(x: Int): Int = {
return 1 + x
} get4(x) + 3
}
get3(2)
上一篇:二十、curator recipes之NodeCache


下一篇:MyCAT 在 Cobar 的基础上,完成了彻底的 NIO 通讯,并且合并了两个线程池