每天学一点Scala之 闭包
发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,定义函数在变量不处于其有效作用域时,还能够对变量进行访问,即为闭包;也就是说,变量超出了其作用域,还可以使用,就是闭包现象。可能针对的使用场景之一?比方说,年底了,公司针对每个部门的奖金是不同。比方说
千家信息网最后更新 2025年02月21日每天学一点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安全错误
数据库的锁怎样保障安全
引导页数据库设计
数据库技术操作规定
数据库中的数据冗余
飞翔网络安全绘画
数据库表存放图片字段类型
dota2服务器在哪
软件开发深圳
创魔最新的服务器
浙江省3级数据库该怎么考
数据网络安全面临的主要威胁
网络安全秘钥
海事局应急联动指挥系统软件开发
体液标志物数据库
配置软件开发
数据库nature
数据库修改连接密码怎么修改
visio 数据库标志
剑桥晶体数据库
婚车租车软件开发
oracle是内存数据库吗
注册app服务器费用
四川触摸软件开发
服务器托管的方式特点
服务器和网站密码一样吗
停用某个数据库
网页下拉框数据库数据库数据
惠州卫星软件开发零售价
宁波哪里能学软件开发
南京商业学校计算机网络技术专业
2016数据库怎么还原数据