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

我是研究僧i 提交于 2020-05-25 06:18:46

问题


Having an asynchronous function that doesn't return a value, what's the ideal return type Future<Null> or Future<void>?, or more specifically, what's the difference in using either? Both are legal, and in both cases the return value of the function is a Future that resolves to null. The following code prints null two times:

import 'dart:async';

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

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

回答1:


The type Null only allows the value null

The type void allows values of any type, but communicates that the value shouldn't be used.

It's not yet clear to me how tools support will treat void. There will probably linter rules that hint or warn at using void values.

Null was used instead of void previously because void was only supported as return type of methods/functions.



来源:https://stackoverflow.com/questions/49410139/dart-2-difference-between-futurevoid-and-futurenull

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!