从品牌网站建设到网络营销策划,从策略到执行的一站式服务
函数在变量不处于其有效作用域时,还能够对变量进行访问,即为闭包;也就是说,变量超出了其作用域,还可以使用,就是闭包现象。
可能针对的使用场景之一?
比方说,年底了,公司针对每个部门的奖金是不同。比方说,销售部门奖金为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值不同,就会返回不同的匿名函数
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图