flutter - 返回类型“bool”不是“void”,正如闭包的上下文飞镖颤动所要求的那样
问题描述
forEach
在返回值时在函数中使用项目时使用循环时出现以下错误。
bool validatedValues(List<String> values){
values.forEach((i){
if (i.length > 3){
return true;
}
});
return false;
}
我正在使用 dart null 安全 sdk 版本:">=2.12.0 <3.0.0"
完全错误:
The return type 'bool' isn't a 'void', as required by the closure's context.dartreturn_of_invalid_type_from_closure
解决方案
问题是由你的return true
内部引起的forEach
。forEach
期待 avoid Function(T)
不是 a bool Function(T)
。
我认为你试图实现的是:
bool validatedValues(List<String> values){
bool result = false;
values.forEach((i){
if (i.length > 3){
result = true;
}
});
return result;
}
或者,可能更优雅:
bool validatedValues(List<String> values) => values.any((i) => i.length > 3);
推荐阅读
- c# - Pdfreader 对象引用未设置为对象的实例
- python - 在 Sharepoint 上部署 Plotly Dash
- python - Python将整个列表作为参数传递而不对其进行迭代?
- c - 例如,如何从数组中删除 0-s,使数组看起来不像 0 0 3 0 5,而是看起来像 3 5
- ios - 在 Swift 中,如何确保两个文本字段中只有一个是可填写的?
- heroku - Heroku su - 身份验证失败
- spring - 无法在 Weblogic 12.1.3 和 12.2.1.3 上建立 websocket 连接。它失败并出现 404 not found 错误
- symfony - Redis 会话在 symfony 中不起作用(使用 snc/SncRedisBundle)
- javascript - 在字符串中特定数量的数字后插入空格
- java - AWT Robot - 仅在 MacOS 上截取当前程序的屏幕截图