首先得明白下面2点:

  1. 全局变量的特点:常驻内存,污染全局变量
  2. 局部变量的特点:会被垃圾回收机制回收,不会污染作用域…
// 闭包.dart
void main(){myClosure(){var a = 0; // a是一个局部变量.函数执行完毕后将被清理return (){a++;print(a);};}var fn = myClosure();fn();fn();fn();
}


原因如下:

// 1.myClosure里面返回了一个匿名函数 () { a++; print(a);};
// 2.匿名函数可以访问到myClosure()函数内部的局部变量a;
// 3.函数的返回给了fn,即fn相当于匿名函数再内存中的一个地址.可以通过fn访问到内存中的这个匿名函数

结果:

// 很明显,内存中存储a的值的,那部分区域并未释放(否则,a的值不会从1到3变化)

dart --- 简单的闭包相关推荐

  1. 三分钟简单了解闭包及作用域

    作为八股文中最常见的一个问题,闭包一开始对小白来说是比较难理解的一个部分,虽然平时可能使用闭包的地方比较少,但是确实面试中热门的问题.本文参考地址 ☀️ 什么是闭包 一个函数和对其周围状态(lexic ...

  2. 闭包的作用和简单案列

    闭包的作用和简单案例 闭包的定义:闭包就是能够读取其他函数内部变量的函数: 简单的理解为:一个作用域可以访问其他函数内部的局部变量: 常见的方式:一个函数内创建另外一个函数,通过另外一个函数访问这个函 ...

  3. colsure php_PHP Closure(闭包)类详解

    闭包就是能够读取其他函数内部变量的函数.例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成"定义在一个函数内部的函数".在本质上,闭包是将函数内 ...

  4. python 闭包变量不允许write,要使用nonlocal

    以下是一段简单的闭包代码示例: def foo():m=3n=5def bar():a=4return m+n+a return bar >>>bar = foo() >> ...

  5. 勇士斗恶龙:没那么复杂的Js闭包(改)

    2019独角兽企业重金招聘Python工程师标准>>> 本文之前发表过一次,虽然当时也是精心书写过,但还是感觉有些问题本说明白,又走上了"把简单的事说复杂"的老毛 ...

  6. 06--swift之闭包

    2019独角兽企业重金招聘Python工程师标准>>> //闭包 var a = [3,2,5,4] a.sortInPlace { (a, b) -> Bool in ret ...

  7. JavaScript闭包如何工作?

    您将如何向了解其闭包概念(例如函数,变量等)的人解释JavaScript闭包,但却不了解闭包本身? 我已经在Wikipedia上看到了Scheme示例 ,但是不幸的是它没有帮助. #1楼 我知道已经有 ...

  8. 让你分分钟理解 JavaScript 闭包

    原文:https://www.cnblogs.com/onepixel/p/5062456.html 让你分分钟理解 JavaScript 闭包 闭包,是 Javascript 比较重要的一个概念,对 ...

  9. 让你分分钟学会Javascript中的闭包

    Javascript中的闭包 前面的话: 闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它 ...

最新文章

  1. orm连接mysql_Django项目如何使用ORM连接MySQL
  2. 【骚气的动效】无限循环往下往复淡入淡出运动,通常用于向下箭头,提示用户可以往下滚动或者点击展开
  3. 皮一皮:这是歪打正着了???
  4. 查看MySQL服务端版本
  5. 【Java】JDBC连接MySQL/SQLServer/Oracle三种数据库
  6. PHP笔记-连接MySQL数据库及查询数据
  7. searchsploit漏洞查找工具使用指南(exploit-db.com 离线工具)
  8. 信息学奥赛一本通(1406:单词替换)
  9. css blink不闪烁_使它闪烁HTML教程–如何使用Blink标签以及代码示例
  10. MacOS Docker版本FastDFS安装指南
  11. Windows远程桌面开发之九-虚拟显示器(Windows 10 Indirect Display 虚拟显示器驱动开发)
  12. 强大的Bigdecimal
  13. 【论文译文】BigGAN
  14. 深度学习岗位面试记录
  15. SpringCloud-服务网关
  16. C++模拟扑克过五关
  17. 一篇好文之Android数据库 SQLite全解析
  18. 软件质量与测试--第六周作业 软件测试与评估
  19. 关于高性能计算机的一些介绍
  20. 华为设备:清除配置详解

热门文章

  1. linux nand 坏块_Nand Flash 中的坏块(Bad Block)
  2. 从全职高手开始的系统_动画全职高手第二季热血回归,腾讯视频的国漫IP全链路开发之道...
  3. LeetCode面试题03. 数组中重复的数字
  4. ASP.NET MVC 自定义模型绑定1 - 自动把以英文逗号分隔的 ID 字符串绑定成 Listint...
  5. [BZOJ4698][SDOI2008]Sandy的卡片(后缀自动机)
  6. hdu 5273 Dylans loves sequence 逆序数 区间dp
  7. Warning: Attempt to present on whose view is not in模态跳转问题
  8. hdu 4442 Physical Examination (2012年金华赛区现场赛A题)
  9. window.history 和 DWZ 框架
  10. 实现值两者之间添加 , 、 | 等字符