关于scala闭包

孤人 提交于 2019-11-30 09:39:22

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!