- 闭包是一个方法(对象)
- 闭包定义在其他方法内部
- 闭包能够访问外部方法内的局部变量,并持有其状态(这是闭包最大的作用,可以通过闭包的方式,将其暴露出去,提供给外部访问)
代码:
void main() {
// 获取闭包
var func = a();
for (var i = 0; i < 5; i++) {
// 执行闭包
func();
}
print('-' * 40);
var func1 = b();
for (var i = 0; i < 5; i++) {
func1();
}
}
// 声明一个无返回值类型、无参数的函数
a(){
int count = 0;
// 内部声明一个函数 : 闭包
printCount(){
// 内部可以访问外部方法内的局部变量 count
print(count++);
};
// 返回闭包
return printCount;
}
b(){
int count = 22;
// 声明一个闭包
// (){
// print(--count);
// }
// 将闭包返回
return (){
print(--count);
};
}
结果:
0
1
2
3
4
----------------------------------------
21
20
19
18
17
Exited