Dart 闭包

什么是闭包?

闭包产生原因:

    1.全局变量特点:全局变量常驻内存,全局变量污染全局

    2.局部变量特点:不常住内存会被垃圾机制回收、不会污染全局

闭包定义:

函数嵌套函数,内部函数会调用外部函数的变量或参数,变量或参数不会被系统同回收

  闭包的写法:

函数嵌套函数,并return 里面的函数,这样就形成了闭包。

var a = 123;
void main() {
// 全局变量会一直占用内容
  // print(a);
  // fn() {
  //   a++;
  //   print(a);
  // }

  // fn();// 123
  // fn();//125
  // fn();//126

  // printInfo() {
  //   // 局部变量 内次执行都会返回124
  //   var myNum = 123;
  //   myNum++;
  //   print(myNum);
  // }

  // printInfo();// 124
  // printInfo();// 124

  // 闭包

  fn() {
    var a = 123; // 不会污染全局 常驻内存
    return () {
      a++;
      print(a);
    };
  }

  var b = fn();
  b();//124
  b();//125
  b();//126
}

你可能感兴趣的:(Flutter技术学习,dart)