方法做为一个参数传递
//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]
方法作为参数传入另一个方法

变量调用方法

将方法赋值给变量(方法本身也是一个对象)

方法对象
方法可作为对象赋值给其他变量
方法可作为参数传递给其它方法