1.函数运行的环境
2.持有函数运行状态
3.函数内部可以定义函数
4.函数内部也可以定义类
fun funfun(): () -> Unit {
var count = 0
return fun() {
println(count++)
}
}
fun add(x: Int): (Int) -> Int {
return fun(y: Int): Int {
return x + y
}
}
/**
* 写法等同于add
*/
fun add1(x: Int)=fun(y:Int)=x+y
fun main(args: Array<String>) {
val f = funfun()
/**
* 打印结果0 1
*/
f()
f()
/**
* 打印结果为7
*/
var a = add(5)
println(a(2))
var a1 = add1(5)
println(a1(2))
}