asynchronous - Dart 2 : Difference between Future<void> and Future<Null>

标签 asynchronous dart future

有一个不返回值的异步函数,理想的返回类型是什么 Future<Null>Future<void> ?,或者更具体地说,使用两者有什么区别?两者都是合法的,在这两种情况下,函数的返回值都是 Future解析为 null .以下代码打印 null两次:

import 'dart:async';

Future<void> someAsync() async {}
Future<Null> otherAsync() async {}

main() {
    someAsync().then((v) => print(v));
    otherAsync().then((v) => print(v));
}

最佳答案

型号Null只允许值 null
型号void允许任何类型的值,但表示不应使用该值。

我还不清楚工具支持将如何处理 void .可能会有提示或警告使用 void 的 linter 规则值。
Null被用来代替 void以前因为void仅支持作为方法/函数的返回类型。

关于asynchronous - Dart 2 : Difference between Future<void> and Future<Null>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49410139/

相关文章:

Flutter 图标未在 Iconbutton 中居中并且对齐没有任何作用

android - 如果 sqflite flutter 中存在,则删除表并重新创建

java - 如何在返回 Futures 的 Java ExecutorService 中调试 Callable

java - 使用两个不同类型的 Guava ListenableFutures 的结果

C# 如何让泛型方法等待?

c# - .NET 中 yield 和 await 如何实现控制流?

iphone - 使用委托(delegate)时,需要更好的方法来进行顺序处理

dart - Flutter - 总是在页面出现时执行一个函数

c++ - std::future.get() 有时卡在 os x 中

javascript - Console.log 异步 Facebook Like 按钮加载(显示)后的内容