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 分钟前
AnythingLLM 搭本地知识库:文档问答不准怎么调
linux·后端
知守观1 分钟前
OBS 同名文件互相覆盖,客户拿错了别人的报告:一次文件串号的排查与重构
java·后端
特立独行的猫A6 分钟前
Godot 游戏编辑器移植鸿蒙 PC:难度与可行性分析
后端·harmonyos
章鱼哥19719 分钟前
DeepSeek Harness 插件开发新手教程
后端·deepseek
特立独行的猫A18 分钟前
C++ 异步编程:std::future 与 std::promise 详解(含 RPC 客户端实现实践)
c++·后端
dadaobusi21 分钟前
学习:chiesel,scala
学习·fpga开发·scala
Anymous23 分钟前
支付为什么要验两次签?——从渠道验签到服务间信任边界与 RSA2
后端
m0_3807438723 分钟前
PHP7.1项目升级到8.3报错怎么解决
开发语言·php
泡海椒37 分钟前
JQuick-Excel 字段映射实战:用 MAPPING 固化 Excel 表头与业务字段契约
xml·java·开发语言·excel
lcj251138 分钟前
【C++】set和map——详细使用说明
开发语言·c++·笔记·面试