在启用空值安全的情况下,如何在 Iterable.firstWhere 中从 orElse 返回空值?

Ale*_*ord 5 dart flutter

在 null-safe dart 之前,以下是有效的语法:

final list = [1, 2, 3];
final x = list.firstWhere((element) => element > 3, orElse: () => null);

if (x == null) {
  // do stuff...
}
Run Code Online (Sandbox Code Playgroud)

现在,firstWhere需要orElse返回 an int,而不是 an int?,因此我不能返回 null。

如何从 返回 null orElse

Ale*_*ord 8

一个方便的函数 ,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...
}
Run Code Online (Sandbox Code Playgroud)