首页 > 解决方案 > 颤动的未来与未来与无效

问题描述

之间的主要区别是什么:

  1. Future<void> function(){}
  2. Future<Null> function(){}
  3. void function() {}
  4. funtion(){}

有时我在调用 API 时使用 void 或 future,但我真的不知道主要区别是什么以及何时使用它?

标签: flutterdart

解决方案


  1. Future<void> function() {}

    定义一个异步函数,该函数最终什么也不返回,但可以在最终完成时通知调用者。另请参阅:返回 void 与返回 Future 有什么区别?

  2. Future<Null> function() {}

    定义一个异步函数,null当它最终完成时最终返回。不要使用这个;这是一个古老的形式Future<void>。它早于 Dart 2 并且是必要的,因为它还void不是一个合适的类型,并且没有指示 aFuture不应该返回任何内容的机制。另见:Dart 2:Legacy of thevoid

  3. void function() {}

    定义一个不返回任何内容的函数。如果函数执行异步工作,调用者将无法直接判断它何时完成。

  4. function() {}

    定义具有未指定返回类型的函数。返回类型是隐式的dynamic,这意味着函数可以返回任何东西。不要这样做,因为它没有传达意图;读者将无法判断返回类型是有意还是无意省略的。它也会触发always_declare_return_typeslint。如果你真的想返回一个dynamic类型,你应该明确地使用dynamic function() {}


推荐阅读