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
}
网友评论