1.闭包是一个方法(对象)
2.闭包定义在其他方法内部
3.闭包能够访问外部方法内的局部变量,并且持有其状态
一个例子:
void main(){
var func = a();
func();
func();
func();
func();
//打印出来结果是0,1,2,3
}
a(){
int count = 0;
printCount(){
print(count++);
}
return printCount;
}
a的返回值是个闭包,闭包里面访问了a()对象里面的count,持有其状态,每次调用func,就是调用闭包printCount,然后就能打印递增之后的count。
网友评论