【发布时间】:2021-08-15 12:14:56
【问题描述】:
以下函数的返回类型是Future<File?>,但编译器不会抱怨如果选择器没有返回图片就没有返回值。
static Future<File?> takeImage() async {
PickedFile? pickedFile = await ImagePicker().getImage(source: ImageSource.camera);
if (pickedFile != null) {
print('PHOTO TAKEN');
return File(pickedFile.path);
} else {
print('NO PHOTO TAKEN');
}
}
如果照片没拍,我必须返回null 不是更有意义吗?
没有return语句的方法总是返回null吗?
上面的例子很好地暗示了它,而且像这样简单的东西也可以编译。
static String? s() {}
有人可以澄清发生了什么吗?
【问题讨论】:
-
void一种特殊类型,表示从未使用过的值。像 printInteger() 和 main() 这样没有显式返回值的函数具有 void 返回类型。 -
仔细阅读A tour of the Dart language - 关于
Functions的部分
标签: flutter dart nullable non-nullable flutter-future