Dart-将函数(方法)作为函数参数
工程中经常会用到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不加参数类型不行。
别的方法暂时还没掌握,以后再加
进击的小🐴农