如何创建一个接受具有特定参数的函数作为参数的函数?

nop*_*ato 2 type-systems function dart

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

myFn(Function paramFn) {
    paramFn([1, 2, 3]);
}
Run Code Online (Sandbox Code Playgroud)

如何确保paramFn接受一个List<int>唯一的参数?

Ale*_*uin 6

您可以使用typedefKul的答案中定义您想要的签名,或者您可以简单地在参数中内联函数签名:

myFn(void paramFn(List<int> l)) {
  paramFn([1, 2, 3]);
}
Run Code Online (Sandbox Code Playgroud)


Kul*_*Kul 5

您可以使用typedef将符号与满足所需签名的函数相关联.就像是

typedef void ParamFn(List<int> l);

myFn(ParamFn f) {
  f('abc');   // compile time error
  f([1,2,3]); // works fine
}
Run Code Online (Sandbox Code Playgroud)