FlutterFuture<void>vsFuture<Null>vsvoid
之间的主要区别是什么:
Future<void> function(){}Future<Null> function(){}void function() {}funtion(){}
有时我在调用 API 时使用 void 或 future ,但我真的不知道主要区别是什么,什么时候使用它是正确的?
回答
-
Future<void> function() {}定义一个异步函数,该函数最终不返回任何内容,但可以在最终完成时通知调用者。另请参阅:返回 void 与返回 Future 有什么区别?
-
Future<Null> function() {}定义一个异步函数,
null当它最终完成时最终返回。不要使用这个;这是 的古老形式Future<void>。它早于 Dart 2 并且是必要的,因为void还不是一个合适的类型,并且没有机制表明 aFuture应该不返回任何内容。另请参阅:Dart 2: Legacy of thevoid -
void function() {}定义一个不返回任何内容的函数。如果函数执行异步工作,调用者将无法直接知道它何时完成。
-
function() {}定义具有未指定返回类型的函数。返回类型是隐式的
dynamic,这意味着该函数可以返回任何东西。不要这样做,因为它没有传达意图;读者将无法判断是否有意或无意地省略了返回类型。它也会触发always_declare_return_typeslint。如果你真的想返回一个dynamic类型,你应该明确地使用dynamic function() {}。
THE END
二维码