没有 return 语句的函数在 Flutter 中是否总是 return null?

Does a function without a return statement always return null in Flutter?

以下函数的 return 类型是 Future<File?> 并且如果选择器没有 return a,编译器不会抱怨没有 return 值图片.

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');
    }
  }

如果没有拍照片,我必须 return null 不是更有意义吗?

没有 return 语句的方法是否总是 return 空?

上面的例子暗示了它,像这样简单的东西也可以编译。

static String? s() {}

有人能解释一下这是怎么回事吗?

感谢@pskink 为我指明了正确的方向。

直接来自the documentation

Return values
All functions return a value. If no return value is specified, the statement return null; is implicitly appended to the function body.

Does a method without a return statement always return null?

是的,这是一个简单的例子

Future<void> main() async {
  var str = await start();
  print(str);
}

Future<String> start() async {
  await Future.delayed(Duration(seconds: 2));
}

输出:

null

将其粘贴到 dartpad 中以查看效果:)