VVLL.net

迭代器和生成器

日期:2024-08-22 09:58:31

TypeScript 中的迭代器和生成器是用来处理序列的功能强大的工具。迭代器允许对象自定义其迭代行为,而生成器则提供了一种更便捷的方式来定义复杂的迭代逻辑。

1. 迭代器 (Iterators)

定义:迭代器是一个对象,它实现了 Iterator 接口,该接口包含一个 next 方法,返回一个包含 valuedone 属性的对象。

基本用法

// 定义一个迭代器
class SimpleIterator {
  private count: number = 0;
  private limit: number;

  constructor(limit: number) {
    this.limit = limit;
  }

  // 实现迭代器协议
  next() {
    if (this.count < this.limit) {
      return { value: this.count++, done: false };
    } else {
      return { value: undefined, done: true };
    }
  }
}

const iterator = new SimpleIterator(3);
console.log(iterator.next());