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

}
相关推荐
曹牧3 分钟前
C#里引用ActiveX控件
开发语言·c#
汤姆宝库8 分钟前
推理工程深拆:调度、量化与投机解码
android·开发语言·kotlin
czq_268671948727 分钟前
Python打卡第45天
开发语言·python
宇卿.28 分钟前
C#委托详解
开发语言·c#
IT_陈寒32 分钟前
为什么你应该学习React?
前端·人工智能·后端
ZoeLandia33 分钟前
React04:事件处理与受控表单
开发语言·前端·react.js·typescript
熊猫钓鱼>_>34 分钟前
端侧高斯泼溅(3DGS)渲染与性能调优初探:把“实景重建“跑在手机上【鸿蒙心迹】
开发语言·3d·华为·智能手机·harmonyos
每天一道题40 分钟前
Kafka 为什么会重复消费?从 Producer ACK、Offset 到消息可靠性
后端·微服务
量化炼金 (CodeAlchemy)40 分钟前
【Python】pandas vs polars 简单性能对比测试
开发语言·python·pandas
苦瓜汤补钙41 分钟前
Matlab 2022b(中文)的使用教程——Win11
开发语言·matlab