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

}
相关推荐
野犬寒鸦1 天前
从零起步学习MySQL || 第十六章:MySQL 分库分表的考量策略
java·服务器·数据库·后端·mysql
lsx2024061 天前
Eclipse 添加书签
开发语言
易营宝1 天前
高效的跨境电商广告优化系统:易营宝广告投放实操指南
大数据·开发语言·人工智能·php
qq_256247051 天前
再见 Spec Kit?体验 Gemini CLI Conductor 带来的“全自动”开发流
后端
superman超哥1 天前
路由的艺术:Rust Web 框架中的高效匹配与类型安全提取
开发语言·rust·编程语言·rust web框架·rust路由
hqwest1 天前
码上通QT实战22--趋势页面01-准备图表对象
开发语言·qt·qpainter·qss·painevent·qt绘图事件
Moment1 天前
如何一次性生成 60 种语气表达?RWKV 模型告诉你答案 ❗❗❗
前端·后端·aigc
想摆烂的不会研究的研究生1 天前
每日八股——Redis(3)
数据库·redis·后端·缓存
hqwest1 天前
码上通QT实战23--趋势页面02-图表模拟数据
开发语言·qt·qpainter·qt绘图·绘制曲线
Echo缘1 天前
关于在.cpp文件中包含c的头文件,编译报错问题
c语言·开发语言