我在这段代码中收到了一个警告:
Future<int?> foo() async {
if (someCondition) return 42;
}
此函数的可空返回类型为 'FutureOr<int?>',但未返回任何值。
我告诉Dart,Future可能会完成一个可空类型的int?
,那么为什么我必须显式地返回null
才能消除警告?
我在这段代码中收到了一个警告:
Future<int?> foo() async {
if (someCondition) return 42;
}
此函数的可空返回类型为 'FutureOr<int?>',但未返回任何值。
我告诉Dart,Future可能会完成一个可空类型的int?
,那么为什么我必须显式地返回null
才能消除警告?
这只是一个警告而非错误。警告指的是那些虽然技术上可行但很可能是编程错误的事情。写这样的代码更有可能是忘记处理某个分支,而不是故意使用隐含的 return null
。 显式使用return null
也使意图更加清晰,因此代码更易读。
analysis_options.yaml
是什么样子的? - mmcdon20Flutter 2.8.1 • channel stable
,Tools • Dart 2.15.1
。 - mmcdon20