Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 什么原因导致';应为形式参数名称';在这种情况下发生了什么?_Dart - Fatal编程技术网

Dart 什么原因导致';应为形式参数名称';在这种情况下发生了什么?

Dart 什么原因导致';应为形式参数名称';在这种情况下发生了什么?,dart,Dart,我运行下面的代码,得到一个没有任何堆栈跟踪的错误 我的代码: typedef检查(T值,[onError(T值)]); 主要(){ 列表检查=[ (str)=>str!=null, (str)=>!str.isEmpty ]; 检查doCheck=(字符串值,[onError(字符串)]){ checks.forEach((Check-Check){ 如果(?onError){ 检查(值、误差); }否则{ 检查(值); } }); }; 多切克(“10”); } 还有,我犯的错误 file:

我运行下面的代码,得到一个没有任何堆栈跟踪的错误

我的代码:

typedef检查(T值,[onError(T值)]);
主要(){
列表检查=[
(str)=>str!=null,
(str)=>!str.isEmpty
];
检查doCheck=(字符串值,[onError(字符串)]){
checks.forEach((Check-Check){
如果(?onError){
检查(值、误差);
}否则{
检查(值);
}
});
};
多切克(“10”);
}
还有,我犯的错误

file:///..()../sample.dart': Error: line 11 pos 12: formal parameter name expected
if (?onError) {
我想将
onError
作为
doCheck
函数中的可选参数,并将此参数传递给
checks
中的其他函数

我已确认将可选参数转发到“一”函数

这是可选参数的限制之一吗?

我认为这是一个bug(请参阅)。要解决此问题,必须使用临时变量:

typedef检查(T值,[onError(T值)]);
主要(){
列表检查=[
(str)=>str!=null,
(str)=>!str.isEmpty
];
检查doCheck=(字符串值,[onError(字符串)]){
最终同向误差=?同向误差;
checks.forEach((Check-Check){
如果(isOnErrorPresent){
检查(值、误差);
}否则{
检查(值);
}
});
};
多切克(“10”);
}

感谢您的回答和解决问题的建议!我明白了,我刚刚提交了这个问题: