7.Dart-闭包和箭头函数

2021-09-05  本文已影响0人  你的胡霸霸

main(List<String> args) {

  print("object");

  // 匿名函数

  var func1 = (String name, int age) {

    print("$name, $age");

  };

  func1("张三", 20);

  // 箭头函数, Dart里面的箭头函数和js的不一样,Dart里面的箭头函数花括号体里面只能是一句话,可以省略花括号

  var l = [1, 2, 3, 4];

  var l1 = l.map((e) => e * 3).toList();

  print("l1 = $l1");

  (int a, int b) {

    var s = a + b;

    print("自执行函数 a + b = $s");

  }(3, 5);

// 闭包

// 闭包:

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

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

//  为了实现既常驻内存,又不污染全局, 出现了闭包

//  闭包:函数嵌套函数, 内部函数会调用外部函数的变量或者参数, 变量或者参数不会被系统回收

//  闭包的写法: 函数嵌套函数, 并return李曼的函数, 这样就形成了闭包

  // 自执行方法

  xxx() {

    var a = 100;

    return () {

      print(++a);

    };

  }

  var c = xxx();

  c(); //101

  c(); //102

  c(); //103

  c(); //104

}

上一篇 下一篇

猜你喜欢

热点阅读