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)
  }

}
相关推荐
学长毕业设计几秒前
基于SpringBoot的咖啡馆管理系统的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
骇客野人3 分钟前
SpringBoot业财一体化系统设计和落地实施方案
java·spring boot·后端
学长毕业设计6 分钟前
基于SpringBoot的教学资源推荐系统的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
用户8508692761512 分钟前
一次线上文件上传 Bug 引发的区块链分布式存储深度排查
后端
名字还没想好☜14 分钟前
Java Cleaner 实战:替代废弃的 finalize() 做堆外资源清理,以及强引用导致永不回收的坑
java·后端·spring
旧梦952721 分钟前
Java EnumMap 详解:原理、用法与实战
java·开发语言
大勇前进27 分钟前
写了5年代码,我重新开始认真写单元测试
后端
长大198831 分钟前
TypeScript 真的是 JavaScript 的"平替"吗?5 个真实项目踩坑记录
后端
泡海椒32 分钟前
响应自动序列化:JSON 响应一键转 Java 实体对象,JQuick-Curl 第三方接口调用不再手动解析
后端·github
大白8032 分钟前
"速度"与"质量"不是选择题——我们如何用 CI/CD 同时保住两者
后端