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

}
相关推荐
武藤一雄8 分钟前
C#:进程/线程/多线程/AppDomain详解
后端·微软·c#·asp.net·.net·wpf·.netcore
勇气要爆发21 分钟前
【第一阶段—基础准备】第五章:Python模块和包管理(基础篇)—变形金刚的装备库
开发语言·python
lkbhua莱克瓦2421 分钟前
Java进阶——IO流
java·开发语言·笔记·学习方法·io流
阿杰同学25 分钟前
Java中55种锁,高级面试题,最新面试题
java·开发语言
清晓粼溪27 分钟前
SpringCloud01-基础概念
java·开发语言·spring cloud
华仔啊31 分钟前
RabbitMQ 如何保证消息不丢失和不重复消费?掌握这 4 个关键点就够了
java·后端·rabbitmq
学历真的很重要39 分钟前
PyTorch 机器学习工作流程基础 - 完整教程
人工智能·pytorch·后端·python·深度学习·机器学习·面试
曹牧1 小时前
在C#中,string和String
开发语言·c#
执笔诉情殇〆1 小时前
使用AES加密方法,对Springboot+Vue项目进行前后端数据加密
vue.js·spring boot·后端
小白学大数据1 小时前
基于文本检测的 Python 爬虫弹窗图片定位与拖动实现
开发语言·爬虫·python