工程中经常会用到button的onTap或者onPressed方法,传进去的一般都是函数名字,比如:onTap: f,  f可能的定义为:void f(int x,int y){//xxxxxx;}

按照之前写c++的经验,传递函数应该是用函数指针方法传递的,细节有点忘了,但参数/返回值都是一定指定好的。

Dart中的情况不太一样:

写法1:

1 int f2(int x,int y){return x+y;}
2 
3 int f3(dynamic f){return f(1,2);}
4 main(){
5   print(f3(f2));
6 }

 

 

写法2:

int f2(int x,int y){return x+y;}

int f3(Function(int,int) f){return f(1,2);}
// 闭包.dart
void main(){
  print(f3(f2));
}

Function不加参数类型不行。

别的方法暂时还没掌握,以后再加

 

分类:

技术点:

相关文章: