方法做为一个参数传递
//Main程序入口 void main(List args) { var list = ["h", "e", "l", "l", "o"]; print(listTimes(list, (str) => times(str))); } List listTimes (List list, String f(str)) { for (var index = 0; index < list.length; index ++) { list[index] = f(list[index]); } return list; } String times(str) { return str*3; } 2、 //Main程序入口 void main(List args) { Function p = printHello; p(); var list = [1,2,3]; } printHello() => print("hello");
方法对象图
字符串*3 的结果为原始字符串拼接3次
方法参数的声明
方法对象作为参数传递
方法对象的声明与使用
方法对象
方法可作为对象赋值给其他变量
方法可作为参数传递给其他方法
/** * 方法作为参数 */ String times(str){ return str*3; } var list=["a","b","c","d","3"]; List getList(List list,String times(str)){ for(var index=0;index<list.length;index++){ list[index]=times(list[index]); } return list; }
方法对象:
实现一个以方法作为参数的方法
listTimes
print作为方法参数
赋值给变量
var也可以写成Function
方法对象。
一,方法对象
方法可作为对象赋值给其他变量
方法可作为参数传递给其他方法
1、 方法可作为对象赋值给其他变量
定义方法:
void method1(){
print(“Hello”);
}
调用
Function func=method1;
func();
Hello会被打印出来
2、 方法可作为参数传递给其他方法
定义方法:
String times(str){
return str*3;
}
List listTimes(List list,String times(str)){
for(var index=0;index<list.length;index++){
list[index]=times(list[index])
}
return list;
}
调用:
var list=[“h”,”e”,”l”,”l”,”o”];
print(listTimes(list,times));
打印结果:
[hhh,eee,lll,lll,ooo]
方法作为参数传入另一个方法
变量调用方法
将方法赋值给变量(方法本身也是一个对象)
方法对象
方法可作为对象赋值给其他变量
方法可作为参数传递给其它方法