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

}
相关推荐
Irissgwe3 分钟前
线程概念与控制
linux·开发语言·c++·线程
Yao.Li5 分钟前
python-pcl 安装排障流程
开发语言·python
SuperEugene6 分钟前
Vue3 组合式函数(Hooks)封装规范实战:命名 / 输入输出 / 复用边界 + 避坑|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
芝士麻雀9 分钟前
掌握 .claude/ 目录:让 Claude Code 真正懂你的项目
前端·后端
雨师@13 分钟前
多个golang版本如何切换的办法
开发语言·后端·golang
重庆小透明16 分钟前
【搞定面试之mysql】第二篇:事务和MVCC
java·后端·mysql·面试·职场和发展
春日见17 分钟前
自动驾驶的四个演进阶段
开发语言·人工智能·驱动开发·matlab·docker·计算机外设
未秃头的程序猿20 分钟前
Redis深度突围:告别get/set,解锁高级玩法与性能优化秘籍
redis·后端
shaoming377620 分钟前
SQL Server2022版+SSMS安装教程(保姆级)
后端·python·flask
m0_7167652325 分钟前
C++提高编程--STL初识、string容器详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio