flutter - 颤动的未来与未来与无效
问题描述
之间的主要区别是什么:
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_types
lint。如果你真的想返回一个dynamic
类型,你应该明确地使用dynamic function() {}
。
推荐阅读
- flutter - Flutter 实时数据库
- karate - 空手道:是否应该使用更新的有效负载设置 XML 正文来覆盖现有的同名正文?
- python - 在没有循环的方法中产生
- node.js - 如果嵌套,对 Mongodb Aggregate 有疑问
- php - Illuminate\Broadcasting\BroadcastException 无法连接到 Pusher
- java - 为什么在 IntelliJ 中运行基于 TestNg 的脚本时在控制台中打印 ASCII 字符?
- javascript - 向现有正则表达式添加额外的字母匹配组
- go - 递归内部函数 Golang
- python - 在 python 的类函数中使用 round 根本不会舍入
- javascript - Jquery window.location.hash 在主页上不起作用