每天学一点Scala之 闭包
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,定义函数在变量不处于其有效作用域时,还能够对变量进行访问,即为闭包;也就是说,变量超出了其作用域,还可以使用,就是闭包现象。可能针对的使用场景之一?比方说,年底了,公司针对每个部门的奖金是不同。比方说
千家信息网最后更新 2026年11月02日每天学一点Scala之 闭包
定义
函数在变量不处于其有效作用域时,还能够对变量进行访问,即为闭包;也就是说,变量超出了其作用域,还可以使用,就是闭包现象。
可能针对的使用场景之一?
比方说,年底了,公司针对每个部门的奖金是不同。比方说,销售部门奖金为10000,研发部门是15000,测试部门12000等,就可以使用闭包来实现
例子,如下:
object BiBaoTest { def main(args: Array[String]): Unit = { val salesDepartment = add(10000) //变量salesDepartment相等于一个匿名函数,wages + 10000 println("---->:\t" + salesDepartment(10)) //为销售部门的某一个员工发工资,基本工资是10 val rDdepartment = add(15000) //变量rDdepartment相等于一个匿名函数,wages + 15000 println("---->:\t" + rDdepartment(100)) val testDepartment = add(12000) //变量testDepartment相等于一个匿名函数,wages + 12000 println("---->:\t" + testDepartment(10)) } def add(bonus: Int) = (wages: Int) => wages + bonus //bonus,这种形式就是闭包现象}或者这样理解,闭包,是具有某种规律的匿名函数的,更高层次的抽象,
如:
(x: Int) => x + 1(x: Int) => x + 14(x: Int) => x + 3(x: Int) => x + 9(x: Int) => x + 7(x: Int) => x + 10(x: Int) => x + 100...这种匿名函数,结构上,很相似,整体是累加运算,因此,可以抽象成def add(y: Int) = (x: Int)=> x + y这种形式
也就是说,传入的y值不同,就会返回不同的匿名函数
函数
变量
闭包
部门
不同
也就是
也就是说
作用
奖金
就是
工资
形式
现象
销售
有效
相似
基本工资
例子
公司
员工
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
互联网科技海报
互联网科技股
互联网科技保险
智慧科技互联网
科技创新互联网企业
互联网科技公司有哪些
互联网科技股有哪些
互联网实体化科技化
河南猎农互联网科技有限公司
千方科技属于互联网企业吗
移动互联网年度科技创新
互联网公司黑科技创始人
广州新华互联网科技学校电竞方面
众安科技工业互联网合作
合肥互联网科技公司公章图片
黑科技 体验场景 互联网大会
厦门江牛科技互联网
陕西彩京云互联网科技有限公司
保山浩联互联网科技有限公司
科技互联网龙头
河南真二互联网科技有限公司
顺网科技2021年互联网排名
深圳国际航运科技和互联网
工业互联网展湾科技股份有限公司
无锡工业互联网科技有限公司
从那以后互联网科技有限公司
北京军民互联网科技公司
互联网科技创新创业项目
北京品多多互联网科技有限公司