Scala的函数的闭包

闭包是:一个函数连同该函数的非局部变量的一个引用环境。

函数和变量的定义要在同一个作用域,函数可以引用已经创建的变量,函数可以同值一样被传递和应用,当执行函数时该函数仍然引用着变量。

Scala 复制代码
object Test888 {
  //把函数当做返回值
  def main(args: Array[String]): Unit = {
    //f是一个函数,它的返回值也是一个函数
    var f=(x:Int)=>{
      //对于fn来说,x就是一个非局部变量,x+fn就会构成一个闭包结构
      var fn=(y:Int)=>x+y
      fn
    }

    var s=f(2)//s是一个函数
    var res=s(100)//102
    var res1=s(88)//?
    println(res,res1)
  }

}
相关推荐
Sheep Shaun14 小时前
STL中的unordered_map和unordered_set:哈希表的快速通道
开发语言·数据结构·c++·散列表
南昌彭于晏14 小时前
解决springboot静态内部类非空校验无效的问题
java·spring boot·后端
czlczl2002092514 小时前
MybatisPlusInterceptor实现无感修改SQL的底层原理(源码)
数据库·spring boot·后端·sql
jllllyuz14 小时前
基于帧差法与ViBe算法的MATLAB前景提取
开发语言·算法·matlab
DsirNg14 小时前
CategoryTree 性能优化完整演进史
开发语言·前端
kevin_水滴石穿14 小时前
C#获取程序集和文件版本
开发语言·c#
javadaydayup14 小时前
MyBatis 映射值报错的罪魁祸首竟然是 Lombok 的 @Builder?
后端
we1less14 小时前
[audio] AudioTrack (五) 共享内存创建分析
android·java·开发语言
一 乐14 小时前
景区管理|基于springboot + vue景区管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
傻啦嘿哟14 小时前
实战:用GraphQL接口高效采集数据
开发语言·驱动开发·php