我知道Function https://api.dartlang.org/stable/1.22.1/dart-core/Function-class.html类可以作为参数传递给另一个函数,如下所示:
void doSomething(Function f) {
f(123);
}
但是有没有办法限制函数参数的实参和返回类型呢?
例如,在这种情况下f
直接在整数上调用,但如果它是接受不同类型的函数怎么办?
我尝试将其作为Function<Integer>
,但 Function 不是参数类型。
还有其他方法可以指定作为参数传递的函数的签名吗?
Dart v1.23 添加了一种用于编写函数类型的新语法,该语法也可以内联工作。
void doSomething(Function(int) f) {
f(123);
}
与函数参数语法相比,它的优点是您还可以将它用于变量或您想要编写类型的任何其他地方。
void doSomething(Function(int) f) {
Function(int) g = f;
g(123);
}
var x = <int Function(int)>[];
int Function(int) returnsAFunction() => (int x) => x + 1;
int Function(int) Function() functionValue = returnsAFunction;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)