dart - 将 orElse 函数添加到 firstWhere 方法

2021-08-31 11:01:36 浏览数 (1)

我正在尝试将 onElse 函数添加到 iterator.firstWhere 方法,但我无法获得正确的语法。 我试过类似的东西

代码语言:javascript复制
List<String> myList = 

String result = myList.firstWhere((o) => o.startsWith('foo'), (o) => null);

但是编译器有一个错误

1 positional arguments expected, but 2 found

我确定这是一个简单的语法问题,但它让我难倒

最佳答案

'orElse' 是一个命名的可选参数。

代码语言:javascript复制
void main() {
  checkOrElse(['bar', 'bla']);
  checkOrElse(['bar', 'bla', 'foo']);
}

void checkOrElse(List<String> values) {
  String result = values.firstWhere((o) => o.startsWith('foo'), orElse: () => '');

  if (result != '') {
    print('found: $result');
  } else {
    print('nothing found');
  }
}

0 人点赞