首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从不可为空的类型函数返回Null

无法从不可为空的类型函数返回Null
EN

Stack Overflow用户
提问于 2021-07-30 17:47:15
回答 3查看 351关注 0票数 0

这是我收到的错误消息:

代码语言:javascript
运行
复制
The body might complete normally, causing 'null' to be returned, but the return type is a potentially non-nullable type.
Try adding either a return or a throw statement at the end.

在以下代码中:

代码语言:javascript
运行
复制
Product findProductById(String prodId) {
  _productsList.firstWhere((element) {
    return prodId == element.id;
  });
}

我想通过id查找产品,但如果找不到,我应该返回什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-07-30 17:52:24

您没有在findProductById函数中使用return

代码语言:javascript
运行
复制
Product findProductById(String prodId) {
  return _productsList.firstWhere((element) {
    return prodId == element.id;
  });
}
票数 1
EN

Stack Overflow用户

发布于 2021-07-30 17:52:47

从Dart 2.12和更高版本开始,我们需要指定类型是可以为空的还是不可为空的。在您的情况下,您应该添加'?‘如下所示,在类型名product后面加一个问号,这将告诉编译器您的函数可以返回一个可以为空的产品。此外,您还忘记从productList返回过滤后的产品。

代码语言:javascript
运行
复制
Product? findProductById(String prodId) {
return _productsList.firstWhere((element) {
  return prodId == element.id;
});
票数 1
EN

Stack Overflow用户

发布于 2021-07-30 17:58:25

可以返回一个空的Product it not found。

代码语言:javascript
运行
复制
  Product findProductById(String productId) {
    return productList.firstWhere((element) => element.id == productId,
        orElse: () => Product() // make a empty product using default constructor);
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68595182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档