在我们使用条件 return 答案的未来函数中使用 // ignore: missing_return 是个好主意吗?
is it a good idea to use // ignore: missing_return in an future fuction where we are using conditioning to return answer?
作为问题状态,在我们使用条件 return 回答的未来函数上方使用 // ignore: missing_return
是个好主意吗?
例如
Future<UserModel> getProfile() async {
if (_user == null) {
_user = await Provider.of<UserProvider>(context).fetchUserProfile();
} else {
return _user;
}
}
warning
如下所示被抑制:
// ignore: missing_return
Future<UserModel> getProfile() async {
if (_user == null) {
_user = await Provider.of<UserProvider>(context).fetchUserProfile();
} else {
return _user;
}
}
这是一个好的做法还是我应该对给定的代码做些什么修改...
不,那很糟糕。有人告诉您有问题,但您没有解决问题,而是让他们闭嘴。你的编译器不会把它当回事,但它仍然不是编写高质量代码的好方法。
您 缺少一个 return。在其他语言中,这将是编译器错误,而不是警告。您的代码有缺陷。你需要修复它。
你说你的方法 return 是 UserModel
并且如果 _user
为 null,它很简单。
因为我不知道你想要发生什么,所以我只能提出建议。我想您希望此方法 return 用户并在尚未加载时加载它。所以这将是你这样做的正确方法:
Future<UserModel> getProfile() async {
if (_user == null) {
_user = await Provider.of<UserProvider>(context).fetchUserProfile();
}
return _user;
}
这样的警告实际上可以帮助您编写干净的 error-free 代码。永远不要试图忽略它们,尝试通过理解来解决它们。
您的函数 getProfile()
期望 Future<UserModel>
作为其 return 类型。
是的,您在 else 条件下 returning UserModel
,但如果条件 (_user == null)
为真,您不会 returning 函数中的任何内容.
根据您的用例,您可以这样做,
Future<UserModel> getProfile() async {
if (_user == null) {
/// sets the _user if its null
_user = await Provider.of<UserProvider>(context).fetchUserProfile();
}
///returns the _user
return _user;
}
作为问题状态,在我们使用条件 return 回答的未来函数上方使用 // ignore: missing_return
是个好主意吗?
例如
Future<UserModel> getProfile() async {
if (_user == null) {
_user = await Provider.of<UserProvider>(context).fetchUserProfile();
} else {
return _user;
}
}
warning
如下所示被抑制:
// ignore: missing_return
Future<UserModel> getProfile() async {
if (_user == null) {
_user = await Provider.of<UserProvider>(context).fetchUserProfile();
} else {
return _user;
}
}
这是一个好的做法还是我应该对给定的代码做些什么修改...
不,那很糟糕。有人告诉您有问题,但您没有解决问题,而是让他们闭嘴。你的编译器不会把它当回事,但它仍然不是编写高质量代码的好方法。
您 缺少一个 return。在其他语言中,这将是编译器错误,而不是警告。您的代码有缺陷。你需要修复它。
你说你的方法 return 是 UserModel
并且如果 _user
为 null,它很简单。
因为我不知道你想要发生什么,所以我只能提出建议。我想您希望此方法 return 用户并在尚未加载时加载它。所以这将是你这样做的正确方法:
Future<UserModel> getProfile() async {
if (_user == null) {
_user = await Provider.of<UserProvider>(context).fetchUserProfile();
}
return _user;
}
这样的警告实际上可以帮助您编写干净的 error-free 代码。永远不要试图忽略它们,尝试通过理解来解决它们。
您的函数 getProfile()
期望 Future<UserModel>
作为其 return 类型。
是的,您在 else 条件下 returning UserModel
,但如果条件 (_user == null)
为真,您不会 returning 函数中的任何内容.
根据您的用例,您可以这样做,
Future<UserModel> getProfile() async {
if (_user == null) {
/// sets the _user if its null
_user = await Provider.of<UserProvider>(context).fetchUserProfile();
}
///returns the _user
return _user;
}