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语言递归实现汉诺塔问题
c语言·开发语言
不吃土豆的马铃薯5 分钟前
Spdlog 入门:日志记录器与日志槽基础详解
服务器·开发语言·c++·c·日志·spdlog
凯瑟琳.奥古斯特13 分钟前
传输层核心功能解析
开发语言·网络·职场和发展
RainCityLucky17 分钟前
Java Swing 自定义组件库分享(七)
java·笔记·后端
_Evan_Yao21 分钟前
如何搭建属于自己的技术博客(CSDN / GitHub Pages)
后端·学习·github
嘟嘟MD21 分钟前
Storybound 产品进度分享,6月公测很快啦
后端·ai编程·创业
Fuyo_111928 分钟前
C++中的活字印刷术——模板·初阶
开发语言·c++·笔记
在角落发呆29 分钟前
跨越网络鸿沟:传统文件传输与现代内网穿透的奇妙交响
开发语言·php
Season45033 分钟前
C++之模板元编程(前置知识 constexpr)
开发语言·c++
AI玫瑰助手35 分钟前
Python运算符:比较运算符(等于不等等于大于小于)与返回值
android·开发语言·python