当前位置: 首页 > ops >正文

关闭函数闭包的理解

闭包

几乎所有支持GC的语言都有闭包的概念。

闭包通俗来说,就是:可以捕获并记住外部变量。

关键在于【捕获】外部作用域的变量,并将其【封装】在函数内部,就像函数自带了一个【小背包】,走到哪里都能访问到这些变量。

闭包的体现形式通常是:函数作为返回值,并且这个返回函数里面引用了外部函数的局部变量。

package mainimport "fmt"func outer() func() int {i := 0inner := func() int {// 引用了外部局部变量ii++fmt.Println(i)return i}return inner
}func main() {a := outer()a() // 1a() // 2a() // 3
}

为什么说几乎支持闭包的语言,都是拥有GC的呢?这是因为闭包捕捉了函数的局部变量放在了【小背包】里面,这个变量不会随着函数调用栈返回被销毁,而是随着闭包生命结束而销毁。

http://www.xdnf.cn/news/10636.html

相关文章:

  • 一元函数积分
  • C++string1号
  • ps色相饱和度调整
  • ESP32与STM32
  • 回测效率提升500%!khQuant打板策略回测性能深度剖析——基于miniQMT的回测系统深度优化【AI量化第29篇】
  • 【Linux】权限chmod命令+Linux终端常用快捷键
  • 审计-函证
  • 自适应流量调度用于遥操作:面向时间敏感网络的通信与控制协同优化框架
  • 状态机实现文件单词统计
  • 基于STM32控制直流电机加减速正反转设计
  • FDR的定位原理
  • Transformer核心技术深度解析:多头注意力机制与架构精粹
  • 计算机视觉---YOLOv6
  • web架构3------(nginx的return跳转,gzip压缩,目录浏览,访问控制和location符号优先级)
  • 智慧政务标准规范介绍:构建高效、协同的政务信息体系
  • EchoMimicV2:迈向引人注目、简化的半身人类动画
  • vscode中的markdown表格列宽
  • DAY 39 超大力王爱学Python
  • ThreadLocal ,底层原理,强引用,弱引用,内存泄漏
  • Ⅲ-1.计算机二级选择题(三大结构之基本语句)
  • C++11 : 智能指针
  • FreeCAD源码分析: 单位制系统
  • 量子物理:初步认识量子物理
  • 车载软件更新 --- 数据完整性和正确性策略(数据验签事宜汇总)
  • 香橙派3B学习笔记5:Linux文件系统分区_A/B系统分区
  • C++ - 标准库之 <sstream> ostringstream(ostringstream 概述、基本使用、清空内容、进阶使用)
  • torch.randn vs torch.rand
  • 《深度探索C++对象模型》阅读笔记(完整版)
  • DAY 41 超大力王爱学Python
  • 回文字符串