考虑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){};
}