Dart中Function类型参数的默认值



考虑Dart文件中的一个函数

void myFunction({int input = 1, Function(int, String) callback}) {
// ...
}

所以,我想知道是否有可能为callback参数指定一个默认值,例如,它可以是类似(_, _) => { }的值。

附言:我知道它的默认值是null,而??可以帮助避免NPE,我只是好奇它是否可能。干杯

您可以执行以下操作:

dynamic func(int i, String s) {
print(i.toString() + s);
}
void myFunction({int input = 1, Function(int, String) callback = func}) {
callback(input, " .");
}
void main() {
myFunction(input: 2);
}

可选参数的默认值必须为常量。

这就是文件中所说的

这个东西可以这样绕过:

dynamic myCallback(int a,String b) {

}

void myFunction({int input = 1, Function(int, String) callback }) {
if (callback == null) callback = myCallback;
}

编辑:

或者,您可以将匿名函数myCallback函数一起使用,如下所示:

void myFunction({int input = 1, Function(int, String) callback }) {
if (callback == null) callback = (a,b){};
}

最新更新