关于scala闭包

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函数的内部,形成了闭合的效果

猜你喜欢

转载自www.cnblogs.com/sunpengblog/p/11576892.html
今日推荐