如何在Dart中为咖喱函数添加类型签名?
在此示例中,我想在此处向功能Function(int) => Function(int) => String type
添加f
签名:
void main() {
Function f = (int a) => (int b) => "$a + $b";
}
答案 0 :(得分:4)
您可以使用ReturnType Function(ParamType paramName)
之类的语法作为函数的类型。
在您的情况下:
void main() {
String Function(int) Function(int) f = (int a) => (int b) => "$a + $b";
}
如果您需要在多个地方使用此类型,也可以使用typedef
。
typedef MyFunction = String Function(int) Function(int);
void main() {
MyFunction f = (int a) => (int b) => "$a + $b";
}
请注意,您可以省略lambda中的类型,因为使用类型化函数,推断会知道参数是整数。
typedef MyFunction = String Function(int) Function(int);
void main() {
String Function(int) Function(int) f1 = (a) => (b) => "$a + $b";
MyFunction f2 = (a) => (b) => "$a + $b";
}