例如,这两个代码段之间有什么区别吗?在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);
}
1条答案
按热度按时间lp0sw83n1#
由于多年来一直没有答案,只有评论,我将张贴我在这里找到的。
(感谢@pskink和@UTKARSH-Sharma)
1.它们将给予完全相同的
value
。你可以自由选择其中之一。1.对于第一个
return result
,Dart将推断类型并将其 Package 在Future<bool>
中。1.第二个
Future<bool>.value(result)
只是一个更显式的表达式。总之,它们都是有效的,选择你喜欢的。