Dart 2:Future<void> 和 Future<Null> 的区别
Dart 2: Difference between Future<void> and Future<Null>
有一个没有 return 值的异步函数,什么是理想的 return 类型 Future<Null>
或 Future<void>
?,或者更具体地说,有什么区别在使用吗?两者都是合法的,并且在这两种情况下,函数的 return 值都是解析为 null
的 Future
。以下代码打印 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
。可能会有 linter 规则提示或警告使用 void
值。
之前使用 Null
而不是 void
因为 void
仅支持 return 类型的 methods/functions.
有一个没有 return 值的异步函数,什么是理想的 return 类型 Future<Null>
或 Future<void>
?,或者更具体地说,有什么区别在使用吗?两者都是合法的,并且在这两种情况下,函数的 return 值都是解析为 null
的 Future
。以下代码打印 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
。可能会有 linter 规则提示或警告使用 void
值。
Null
而不是 void
因为 void
仅支持 return 类型的 methods/functions.