Dart(十)闭包

  • 闭包是一个方法(对象)
  • 闭包定义在其他方法内部
  • 闭包能够访问外部方法内的局部变量,并持有其状态(这是闭包最大的作用,可以通过闭包的方式,将其暴露出去,提供给外部访问)

代码:

void main() {

  // 获取闭包
  var func = a();
  for (var i = 0; i < 5; i++) {
    // 执行闭包
    func();
  }
  print('-' * 40);
  var func1 = b();
  for (var i = 0; i < 5; i++) {
    func1();
  }

  
}

// 声明一个无返回值类型、无参数的函数
a(){
  int count = 0;
  // 内部声明一个函数 : 闭包
  printCount(){
    // 内部可以访问外部方法内的局部变量 count
    print(count++);
  };
  // 返回闭包
  return printCount;

}

b(){
  int count = 22;
  // 声明一个闭包
  // (){
  //   print(--count);
  //  }

  // 将闭包返回
  return (){
    print(--count);
  };
}

结果:

0
1
2
3
4
----------------------------------------
21
20
19
18
17
Exited
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 感觉有点难懂,可以参考https://www.jianshu.com/p/49e7a29a2698 闭包是自包含的...
    CDLOG阅读 3,833评论 0 0
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 8,008评论 2 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,874评论 1 32
  • 本页包含内容: [TOC] 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift中的闭包与C和Objec...
    伍哥___阅读 1,823评论 0 0
  • 在这个暑假经常陪着孩子去阅览室,有时坐一上午,有时坐上一天。 这是开放式阅览室,只要你能坐得住,只要你爱学习或者爱...
    就无邪阅读 2,405评论 0 1

友情链接更多精彩内容