Dart 2:Future <void>和Future <null>之间的区别

时间:2018-03-21 15:17:44

标签: 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));
}

1 个答案:

答案 0 :(得分:10)

类型Null仅允许值null

类型void允许任何类型的值,但传达不应使用该值。

目前尚不清楚工具支持如何处理void。可能存在使用void值提示或警告的内容规则。

之前使用

Null代替void,因为void仅支持作为方法/函数的返回类型。