use*_*563 3 future async-await dart flutter
文档说:
如果函数具有声明的返回类型,则将类型更新为
Future<T>,其中T是函数返回值的类型。
当我使用此代码执行此操作时,出现错误:无法从方法“amethod”返回类型为“”的值,因为它的返回类型为。String?Future < String>?
为什么会出现该错误?从函数返回非空值的正确方法是什么async?谢谢。
class Demo{
Future<String>? amethod() async{
String? variable1;
//await ...
return variable1;
}
}
Run Code Online (Sandbox Code Playgroud)
jam*_*lin 11
您的函数想要返回variable1类型为 的函数String?。由于该函数是异步的,因此其返回类型必须是Future<String?>, 而不是Future<String>?。两者并不相同:
Future<String>?意味着该函数返回null或 a Future。这就Future完成了一个不可为空的String。这几乎不是您想要的返回类型。Future<String?>意味着该函数始终返回 a Future,从不返回null。这样就Future完成了null或 a String。| 归档时间: |
|
| 查看次数: |
10412 次 |
| 最近记录: |