addition(int a) => (int b) => (int c) => a+b+c;
这就是功能
当我打电话时
addition(1)(2)(3)
它打印 6 没问题
我想知道这个函数的返回类型
我正在尝试柯里化概念!!
正如 Rahul 所说,在您的示例中,返回值的当前类型将是
dynamic
。但如果我们想应用静态已知类型,它会是这样的:
int Function(int) Function(int) addition(int a) =>
(int b) => (int c) => a + b + c;
void main() {
print(addition.runtimeType);
// (int) => (int) => (int) => int
}
它应该是动态的。当未指定任何内容时,返回类型为dynamic。
这个陈述可以被打破为
addition(int a) {
return (int b) {
return (int c) {
return a+b+c;
};
};
}
这里因为没有一个函数有任何返回类型,所以它们的返回类型都是dynamic
你可以跑
print(addition.runtimeType);
# (int) => (int) => (int) => int
接受三个整数并返回一个整数。