flutter - 为什么这个 Flutter 示例没有 return 关键字?

标签 flutter dart

我正在阅读 Flutter 的文档。

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

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

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

最佳答案

那是因为函数被标记了async修饰符:

Future foo() async {
  print('hello world');
}

相当于

Future foo() {
  try {
    print('hello world');
    return Future.value(null);
  } catch (err) {
    return Future.error(err);
  }
}

关于flutter - 为什么这个 Flutter 示例没有 return 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56689806/

相关文章:

flutter - 小部件的 "const"是否只需要在有状态小部件中使用?

android - flutter:是否可以点击屏幕上的某个 x,y 坐标?

flutter - 如何根据Flutter中的子项更改容器的高度?

flutter - 如何在从另一个 Cupertino Picker 调用 onSelectedItemChanged() 时更新/刷新 CupertinoPicker 列表数据

async-await - Flutter 在 main 中读取共享首选项,然后决定哪个启动页面?

dart - 隐藏在键盘后面的文本字段

flutter - "?."Dart 或其他语言中的符号

http - Flutter - 向我的服务器发出 HTTP 发布请求时出错

dart - 如何解决小时候gridview在 ListView 中滚动的问题?

android - 如何在Flutter中渲染单个像素?