每天学一点Scala之 闭包
发表于:2025-12-05 作者:千家信息网编辑
千家信息网最后更新 2025年12月05日,定义函数在变量不处于其有效作用域时,还能够对变量进行访问,即为闭包;也就是说,变量超出了其作用域,还可以使用,就是闭包现象。可能针对的使用场景之一?比方说,年底了,公司针对每个部门的奖金是不同。比方说
千家信息网最后更新 2025年12月05日每天学一点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安全错误
数据库的锁怎样保障安全
软件开发怎么问
下列关于数据库技术的叙述
weblogic数据库超时
互联网科技制造
软件开发1亿合同
spark与数据库的连接
全新的软件开发工具
曙光 服务器内存
软件开发好评评语
上海仓库软件开发
河北超频服务器近期价格
百兆路由上的虚拟服务器
Sybase数据库软件使用
搭建clash服务器教程
计算字符串长度数据库
渭南初中生5g软件开发培训
数据库可以用什么语言
廊坊市网络技术有限公司
个人服务器搭建网盘
申云万象网络技术有限公司
今玖互联网信息科技运营助理
果农直选商城app软件开发
简述网络安全的基本要素
数据库创的表没有保存怎么办
创睿网络技术怎么样
b5亚洲服务器
软件开发需要开工令吗
服务器域增加管理员
软件开发是开发什么呢
实用网络技术测试