dart 的 Lazy Iterable

94 阅读1分钟

相关文章: juejin.cn/post/710943…

这里主要提到两个我们经常用的操作符 where/map

var list = ["1", "2", "3", "4", "5"];
var map = list.map((e) {
  var result = int.parse(e) + 10;
  print("######### $result");
  return result;
});

像上面的代码 运行是不会有日志输出的。只有每次调用 toList 或者遍历map的时候才会输出。

一般情况下 如果你这里返回的知识基本类型 比如 String 或者 int 啥的,直接用也不会有太大问题。但是你如果返回的是对象,当你去做一些判断是否是同一个对象的时候就会有问题,因为你每次遍历返回的都是新的对象,再去判断是否是同一个对象,大概率是不一样的。