有一个不返回值的异步函数,理想的返回类型是什么 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/