我对 Flutter 很陌生,我现在正在尝试使用它的shared_preferences
包来保存字符串并将其检索回来。
现在,我相信getString
应该返回一个字符串(至少这是VS Code告诉我的(,所以我声明了一个返回字符串的包装函数:
String getName() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString('name');
}
但是,这不会编译,但出现错误(请注意缺少引号'String
(:
因为它的返回类型为"字符串">
如果我完全删除返回类型,错误就会消失:
getName() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString('name');
}
谁能解释一下这里发生了什么?getString
实际上返回了什么?
你必须返回一个Future
因为你是一个异步函数
Future<String> getName() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString('name');
}
好的,我现在弄清楚了我错过了什么:我的函数是异步的!
事实证明,Dart 中的异步函数具有返回类型Future
.