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

}
相关推荐
小小龙学IT4 分钟前
Go 后端开发实战:构建高性能 RESTful API 服务
开发语言·golang·restful
fengxin_rou12 分钟前
深入理解Java类加载机制:从原理到实战详解
java·开发语言
薇茗14 分钟前
【C++】类与对象 核心篇
开发语言·c++
小江的记录本16 分钟前
【Spring全家桶】Spring Cloud 2023.0.x:配置中心:Nacos Config、Apollo(附《思维导图》+《面试高频考点清单》)
java·spring boot·后端·python·spring·spring cloud·面试
AI浩16 分钟前
【数据处理】基于 SAM3 的 LabelMe 标注统一校正方法
android·开发语言·kotlin
IT_陈寒17 分钟前
Redis的LRU淘汰策略坑了我一天血汗
前端·人工智能·后端
原来是猿19 分钟前
理解 C++ 哈希表的原理与工程实践
开发语言·c++·散列表
雪的季节22 分钟前
Qt 自定义表头
开发语言·qt
C137的本贾尼31 分钟前
JDBC 编程:用 Java 连接 MySQL
java·开发语言·mysql
AI视觉网奇34 分钟前
three-bvh-csg glb分割
开发语言·前端·javascript