返回一个值和使用Future.value()有什么区别吗?在Dart?

ecfsfe2w  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(94)

例如,这两个代码段之间有什么区别吗?在dartpad中,它们同时返回相同的东西。
函数本身是否从函数声明(Future<bool>)中推断出返回值为bool,因此只使用' return '是可以的,或者是否有任何特定的情况会产生差异?
答:

Future<bool> anyFunction() async {
 print('start');
 var temp = Future.delayed(Duration(seconds: 5));
 bool result = await getSomeResult();
 print('end');

 return result;
}

B:

Future<bool> anyFunction() async {
 print('start');
 var temp = Future.delayed(Duration(seconds: 5));
 bool result = await getSomeResult();
 print('end');

 return Future<bool>.value(result);
}
lp0sw83n

lp0sw83n1#

由于多年来一直没有答案,只有评论,我将张贴我在这里找到的。
(感谢@pskink和@UTKARSH-Sharma)
1.它们将给予完全相同的value。你可以自由选择其中之一。
1.对于第一个return result,Dart将推断类型并将其 Package 在Future<bool>中。
1.第二个Future<bool>.value(result)只是一个更显式的表达式。
总之,它们都是有效的,选择你喜欢的。

相关问题