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”);
}
感谢您的回答和解决问题的建议!我明白了,我刚刚提交了这个问题: