首页 > 代码库 > scala 闭包的概念
scala 闭包的概念
闭包本质上是一个函数和其引用的变量的统一定义,它的返回值依赖于这个函数外部的一个或者多个变量。
var test = (i:Int) => i+sum
这里 i是一个形参, 随着函数的调用传入不同的值 。而more是一个自由变量。
依照函数的字面量(个人理解为函数名)在运行时创建函数对象被称作闭包,通过捕获自由变量的绑定,从而对函数字面量执行的关闭动作。
当自由变量的值发生改变是, 闭包可以捕获这一变化, 从而做出相应的改变。
如上图, 当sum有1变为100时,对应的闭包检测到这一变化,新的函数调用返回新的值。
“An object is data with functions. A closure is a function with data.” — John D. Cook 贴上,慢慢理解
scala 闭包的概念
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。