//1. 需求:使用forEach打印下面List里面的数据
List list=['苹果','香蕉','西瓜'];
list.forEach((value)=>print(value));
//2. 修改下面List里面的数据,让数组中大于2的值乘以2
List list2=[4,1,2,3,4];
var newList=list2.map((value)=>value>2 ? value*2 : value);
5. 匿名方法
example
var printNum = () {
print(123);
};
printNum();
6. 自执行方法(和js差不多)
example
((int n){
print(n);
print('我是自执行方法');
})(12);
7. 闭包(原理和js一样)
全局变量特点: 全局变量常驻内存、全局变量污染全局
局部变量的特点: 不常驻内存会被垃圾机制回收、不会污染全局
想实现的功能: (采用闭包解决)
常驻内存
不污染全局
7.1 对闭包的理解
函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收(不会释放内存)
闭包的写法: 函数嵌套函数,并return 里面的函数,这样就形成了闭包
7.2 闭包示例:
fn() {
var a = 123; /*不会污染全局 常驻内存*/
return () {
a++;
print(a);
};
}
main() {
Function b = fn();
b(); //124
b(); //125
b(); //127
}