相关疑难解决方法(0)

forEach 与 for in:调用方法时的不同行为

我注意到了这一点,forEachfor in产生了不同的行为。我有一个列表,RegExp并希望hasMatch在每个列表上运行。使用 遍历列表时forEachhasMatch永远不会返回 true。但是,如果我使用for in,则hasMatch返回 true。

示例代码:

class Foo {
  final str = "Hello";
  final regexes = [new RegExp(r"(\w+)")];

  String a() {
    regexes.forEach((RegExp reg) {
      if (reg.hasMatch(str)) {
        return 'match';
      }
    });
    return 'no match';
  }

  String b() {
    for (RegExp reg in regexes) {
      if (reg.hasMatch(str)) {
        return 'match';
      }
    }
    return 'no match';
  }
}

void main() {
  Foo foo = new …
Run Code Online (Sandbox Code Playgroud)

dart

1
推荐指数
1
解决办法
321
查看次数

标签 统计

dart ×1