Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何创建一个函数,该函数接受带有特定参数的函数作为参数?_Function_Dart_Type Systems - Fatal编程技术网

Function 如何创建一个函数,该函数接受带有特定参数的函数作为参数?

Function 如何创建一个函数,该函数接受带有特定参数的函数作为参数?,function,dart,type-systems,Function,Dart,Type Systems,我想创建一个函数,它接受一个函数,该函数接受特定类型的参数作为参数。例如: myFn(Function paramFn) { paramFn([1, 2, 3]); } 如何确保paramFn将列表作为唯一的参数接受?这就是原因所在,尽管我不确定强模式将如何强制执行它。您可以使用typedef将符号与满足所需签名的函数相关联。差不多 typedef void ParamFn(List<int> l); myFn(ParamFn f) { f('abc'); //

我想创建一个函数,它接受一个函数,该函数接受特定类型的参数作为参数。例如:

myFn(Function paramFn) {
    paramFn([1, 2, 3]);
}

如何确保paramFn将
列表
作为唯一的参数接受?

这就是原因所在,尽管我不确定强模式将如何强制执行它。

您可以使用
typedef
将符号与满足所需签名的函数相关联。差不多

typedef void ParamFn(List<int> l);

myFn(ParamFn f) {
  f('abc');   // compile time error
  f([1,2,3]); // works fine
}
typedef void参数fn(列表l);
myFn(参数f){
f('abc');//编译时错误
f([1,2,3]);//工作正常
}

您可以使用
typedef
定义所需的签名,如中所述,也可以简单地将函数签名内联到参数中:

myFn(void paramFn(List<int> l)) {
  paramFn([1, 2, 3]);
}
myFn(无效参数fn(列表l)){
paramFn([1,2,3]);
}