Flutter 为什么这个颤振示例没有return关键字?

Flutter 为什么这个颤振示例没有return关键字?,flutter,dart,Flutter,Dart,我正在阅读关于颤振的文档 在上,我观察到了以下奇怪的方法。在该方法中,声明的返回类型是Future。但是,该方法的任何地方都没有return关键字。为什么会这样 Future<void> _incrementCounter() async { setState(() { _counter++; }); Directory directory = await getApplicationDocumentsDirectory(); final String dir

我正在阅读关于颤振的文档

在上,我观察到了以下奇怪的方法。在该方法中,声明的返回类型是Future。但是,该方法的任何地方都没有return关键字。为什么会这样

Future<void> _incrementCounter() async {
  setState(() {
    _counter++;
  });
  Directory directory = await getApplicationDocumentsDirectory();
  final String dirName = directory.path;
  await File('$dir/counter.txt').writeAsString('$_counter');
}

我已经能够确定所有颤振函数都返回一个值,默认返回值为null。但是如果此方法总是返回null,那么为什么要声明Future的返回类型呢?

这是因为该函数用异步修饰符标记:

未来的foo异步{ 打印“你好世界”; } 相当于

未来食品{ 试一试{ 打印“你好世界”; 返回Future.valuenull; }犯错误{ 返回Future.error; } }
在Dart中,尽管它是一种可选的类型化语言,这意味着您可以省略该类型,但建议您提供它

当方法没有返回类型时,会追加returnnull,所以在您的示例中适合返回Future.valuenull

请看