方法对象
方法可以作为对象赋值给其他变量
在 dart 中方法也是一个对象,可以将他赋值给变量。可以通过 var 或者 Function 来声明。
void main(){
var func = printMsg;
Function func1 = printMsg;
func();
func1();
}
printMsg(){ print("object"); }
方法可以作为参数传递给其他方法
这里指的是说,我们可把一个方法当做一个变量传入到另外一个变量中。
void main() {
List list = [1, 2, 3];
list.forEach(printElement);
}
printElement(element){
print(element);
}
闭包
闭包是一个方法(对象),闭包定义在其它方法内部,能够访问外部方法的局部变量,并持有其状态。
void main() {
// 创建一个函数add1,返回加2
Function add1 = addNum(2);
// 创建一个函数add2,返回加4
Function add2 = addNum(4);
// 2 + 3 = 5
print(add1(3));
// 4 + 3 = 7
print(add2(3));
}
// 返回一个函数对象,功能是返回累加的数字
Function addNum(int addBy){
return (int i) => addBy + i;
}
网友评论