def f1(a:Int)={
def f2(b:Int)={
a + b
}
f2 _
}
// 在调用时,f1函数执行完毕后,局部变量a应该随着栈空间释放掉
val f = f1(1)
val f2 = f(6) //执行完f1()才会返回f2(),但是当f2()执行时f1()执行完了,但是a由于f2()的闭包不会随着f1()结束,这是闭包
// 但是在此处,变量a其实并没有释放,而是包含在了f2函数的内部,形成了闭合的效果
def f1(a:Int)={
def f2(b:Int)={
a + b
}
f2 _
}
// 在调用时,f1函数执行完毕后,局部变量a应该随着栈空间释放掉
val f = f1(1)
val f2 = f(6) //执行完f1()才会返回f2(),但是当f2()执行时f1()执行完了,但是a由于f2()的闭包不会随着f1()结束,这是闭包
// 但是在此处,变量a其实并没有释放,而是包含在了f2函数的内部,形成了闭合的效果