在空安全 dart 之前,以下是有效的语法:
final list = [1, 2, 3];
final x = list.firstWhere((element) => element > 3, orElse: () => null);
if (x == null) {
// do stuff...
}
现在,firstWhere
要求 orElse
返回 int
,而不是 int?
,因此我不能返回 null。
如何从 orElse
返回 null?
答案 0 :(得分:2)
一个方便的函数 firstWhereOrNull
解决了这个确切的问题。
导入 package:collection
,其中包括 Iterable
上的扩展方法。
import 'package:collection/collection.dart';
final list = [1, 2, 3];
final x = list.firstWhereOrNull((element) => element > 3);
if (x == null) {
// do stuff...
}