1,箭头函数, 方法体只有一句。
//箭头函数
List myList = [“橘子”,”苹果”,”香蕉”];
//常规写法
myList.forEach((value){
print(value);
});
//箭头函数, 只有一句代码
myList.forEach((value)=>print(value));
// 返回一个新的数组, 要求 >2 的 数字乘于2,其他的不变
List list = [2,1,4,6];
var newList = list.map((value)=> value > 2 ? value * 2 : value);
print(newList.toList()); // [2, 1, 8, 12]
2, 匿名函数
//匿名函数
var b = (){
print(“这是要执行的代码1”);
print(“这是要执行的代码2”);
};
b();
3, 自执行方法
//自执行方法 – 不带参数
((){
print(“自执行方法体”);
})();
//自执行方法 – 带参数
((value){
print(“传进来的数据:”+value);
})(“这是参数字符串”);
4, 闭包
1, 全局变量的特点: 全局变量常驻内存,全局变量污染全局。
2, 局部变量的特点: 不常驻内存,会被垃圾回收机制回收,不会污染全局。
想要实现的功能:
1, 常驻内存
2, 不污染全局
产生了闭包, 闭包可以解决这个问题
闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收。
闭包的写法: 函数嵌套函数, 并 return 里面的函数,这样就形式了闭包。
//闭包
fn(){
var a = 123; /** 不污染全局 */
return(){
a++;
print(a);
};
}
var b = fn();
b();
b();
b();
/** 执行结果:
124
125
126
*/