Dart语言中作为函数参数的Lambda表达式
我正在尝试构建一个类,以便在Dart中以数学顺序进行一些操作。我期待一个序列作为lambda表达式或函数。当我试图构建类的构造函数时,我感到困惑。我应该为参数和数据类型写什么 样本lambda表达式:Dart语言中作为函数参数的Lambda表达式,dart,lambda,parameters,Dart,Lambda,Parameters,我正在尝试构建一个类,以便在Dart中以数学顺序进行一些操作。我期待一个序列作为lambda表达式或函数。当我试图构建类的构造函数时,我感到困惑。我应该为参数和数据类型写什么 样本lambda表达式: int序列(int n)=>7+5*(n-1) 示例函数: int fib(int n) { if ((n == 1) || (n == 2)) { return 1; } else { return fib(n - 1) + fib(n - 2); } } 如何将l
int序列(int n)=>7+5*(n-1)代码>
示例函数:
int fib(int n) {
if ((n == 1) || (n == 2)) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
如何将lambda表达式和函数作为参数赋予另一个函数?因此,您的两个方法的类型是int-function(int)
,这意味着它将一个int
作为参数并输出int
基本上有两种方法。一种是将该类型显式地作为参数类型,如:
int sequence(int n) => 7 + 5 * (n - 1);
int generate1(int Function(int) function, int input) => function(input);
void main() {
print(generate1(sequence, 5)); // 27
}
另一种方法是定义一个typedef
,它将是您的类型的简写:
int fib(int n) {
if ((n == 1) || (n == 2)) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
typedef SomeFunction = int Function(int n);
int generate2(SomeFunction function, int input) => function(input);
void main() {
print(generate2(fib, 5)); // 5
}
如果您有更复杂的类型可用于多种方法,则typedef
会更容易使用。您是说这样的类型吗?